I found that the option -fno-implicit-fp causes the problem. When adding it to the generic ppc32 configuration, I get
the same "unable to find a register to spill in class 'FLOAT_REGS'" error unless I add -fno-expensive-optimizations as
well.
I had originally added this option when I ran into strange run-time errors because an interrupt handler of some driver
had used floating point registers without being asked to do so for moving "long long" values. As the floating point
registers are not saved when entering interrupt mode, bad things happened to the interrupted thread.
On Wed, 2020-06-03 at 17:51 +0000, Johnson, Andrew N. wrote:
> I suspect that the CPU-specific code in gcc for the ppc604 target is older than for the ppc32 target and can’t cope with newer constructs, we’ve had similar issues before. That’s why I really want to encourage you try the ppc32 targets, I don’t think they will show these errors at all and switching will save you time investigating the problems.
>
> - Andrew
>
> On Jun 3, 2020, at 12:30 PM, Zimoch Dirk (PSI) via Core-talk <core-talk at aps.anl.gov> wrote:
> > 3 files have problems implementing the pure virtual function epicsTimerNotify::expire(): fdmgr.cc line 152, epicsTime.cpp line 62 and epicsTimerTest.cpp line 319. What helps is -O1 or -no-expensive-optimizations.
> >
> > As I expect problems with any code that implements expire() I have now added 'CXXFLAGS += -fno-expensive-optimizations' to the general options for that architecture, not only for the 3 failing files.
> >
> > This does not yet solve the problem with typeCast.h.
> >
> > More tests tomorrow.
> >
> > > -----Ursprüngliche Nachricht-----
> > > Von: Michael Davidsaver <mdavidsaver at gmail.com>
> > > Gesendet: Mittwoch, 3. Juni 2020 18:48
> > > An: Zimoch Dirk (PSI) <dirk.zimoch at psi.ch>; 'core-talk at aps.anl.gov' <core-
> > > talk at aps.anl.gov>
> > > Betreff: Re: AW: EPICS 7 and VxWorks 6.9 for PPC604?
> > >
> > > On 6/3/20 8:31 AM, Zimoch Dirk (PSI) wrote:
> > > > I will try the selective -fno-inline ...
> > >
> > > If vxworks 6.7 had gcc 4.1 then the threshold for using
> > > __attribute__((always_inline)) is now being crossed.
> > >
> > > https://github.com/epics-
> > > base/pvDataCPP/blob/0fa927afa7d92f490f92eb4906e27046080309e2/src/misc
> > > /pv/templateMeta.h#L15-L16
> > >
> > > > > -----Ursprüngliche Nachricht-----
> > > > > Von: Zimoch Dirk (PSI)
> > > > > Gesendet: Mittwoch, 3. Juni 2020 17:30
> > > > > An: 'Michael Davidsaver' <mdavidsaver at gmail.com>; 'core-
> > > talk at aps.anl.gov'
> > > > > <core-talk at aps.anl.gov>
> > > > > Betreff: AW: EPICS 7 and VxWorks 6.9 for PPC604?
> > > > >
> > > > > It's gcc 4.3.3.
> > > > >
> > > > > Using -O0 (as used to fix bug 1702298) in helps for fdmgr.cpp but not for
> > > > > typeCast.h.
> > > > >
> > > > > > -----Ursprüngliche Nachricht-----
> > > > > > Von: Michael Davidsaver <mdavidsaver at gmail.com>
> > > > > > Gesendet: Mittwoch, 3. Juni 2020 17:13
> > > > > > An: Zimoch Dirk (PSI) <dirk.zimoch at psi.ch>; 'core-talk at aps.anl.gov' <core-
> > > > > > talk at aps.anl.gov>
> > > > > > Betreff: Re: EPICS 7 and VxWorks 6.9 for PPC604?
> > > > > >
> > > > > > For those of us who aren't so familiar with vxworks, which GCC version(s)
> > > are
> > > > > > involved.
> > > > > >
> > > > > > You may remember https://bugs.launchpad.net/epics-base/+bug/1702298
> > > > > >
> > > > > >
> > > > > > On 6/3/20 8:04 AM, Zimoch Dirk (PSI) via Core-talk wrote:
> > > > > > > Has anyone already compiled EPICS 7 for VxWorks 6.9 for PPC604?
> > > > > > > I have problems:
> > > > > > >
> > > > > > > With -O2 it fails here:
> > > > > > >
> > > > > > > ../fdmgr/fdmgr.cpp: In member function 'virtual
> > > > > > epicsTimerNotify::expireStatus timerForOldFdmgr::expire(const
> > > epicsTime&)':
> > > > > > > ../fdmgr/fdmgr.cpp:152: error: unable to find a register to spill in class
> > > > > > 'FLOAT_REGS'
> > > > > > > ../fdmgr/fdmgr.cpp:152: error: this is the insn:
> > > > > > > (insn:HI 16 15 17 2 ../fdmgr/fdmgr.cpp:151 (set (reg:DF 126 [
> > > D.11913.delay
> > > > > ])
> > > > > > > (mem/s/j/c:DF (plus:SI (reg/f:SI 113 sfp)
> > > > > > > (const_int 8 [0x8])) [0 D.11913.delay+0 S8 A64])) 336
> > > > > > {*movdf_hardfloat32} (expr_list:REG_EQUIV (mem/s/j/c:DF (plus:SI (reg/f:SI
> > > > > 113
> > > > > > sfp)
> > > > > > > (const_int 8 [0x8])) [0 D.11913.delay+0 S8 A64])
> > > > > > > (nil)))
> > > > > > > ../fdmgr/fdmgr.cpp:152: confused by earlier errors, bailing out
> > > > > > >
> > > > > > > With -O1 (or lower) it comliles the above but then fails here:
> > > > > > >
> > > > > > > ../../src/misc/pv/typeCast.h: In function
> > > > > 'void<unnamed>::castVTyped(size_t,
> > > > > > void*, const void*) [with TO = std::basic_string<char, std::char_traits<char>,
> > > > > > std::allocator<char> >, FROM = float]':
> > > > > > > ../../src/misc/pv/typeCast.h:195: sorry, unimplemented: inlining failed in
> > > call
> > > > > > to 'TO epics::pvData::castUnsafe(const FROM&) [with TO =
> > > > > > std::basic_string<char, std::char_traits<char>, std::allocator<char> >, FROM
> > > =
> > > > > > float]': recursive inlining
> > > > > > > ../../src/misc/typeCast.cpp:38: sorry, unimplemented: called from here
> > > > > > >
> > > > > > > At least the compiler is "sorry". I feel much better.
> > > > > > >
> > > > > > > BTW: VxWorks 6.7 has no such problems.
> > > > > > >
> > > > > > > Dirk
> > > > > > >
> > > >
> >
>
> --
> Complexity comes for free, simplicity you have to work for.
>
- Replies:
- Re: EPICS 7 and VxWorks 6.9 for PPC604? Zimoch Dirk (PSI) via Core-talk
- References:
- EPICS 7 and VxWorks 6.9 for PPC604? Zimoch Dirk (PSI) via Core-talk
- Re: EPICS 7 and VxWorks 6.9 for PPC604? Michael Davidsaver via Core-talk
- AW: EPICS 7 and VxWorks 6.9 for PPC604? Zimoch Dirk (PSI) via Core-talk
- AW: EPICS 7 and VxWorks 6.9 for PPC604? Zimoch Dirk (PSI) via Core-talk
- Re: AW: EPICS 7 and VxWorks 6.9 for PPC604? Michael Davidsaver via Core-talk
- AW: AW: EPICS 7 and VxWorks 6.9 for PPC604? Zimoch Dirk (PSI) via Core-talk
- Re: EPICS 7 and VxWorks 6.9 for PPC604? Johnson, Andrew N. via Core-talk
- Navigate by Date:
- Prev:
[Bug 1881563] Re: Empty arrays have undefined behavior Andrew Johnson via Core-talk
- Next:
Re: EPICS 7 and VxWorks 6.9 for PPC604? Zimoch Dirk (PSI) via Core-talk
- Index:
2002
2003
2004
2005
2006
2007
2008
2009
2010
2011
2012
2013
2014
2015
2016
2017
2018
2019
<2020>
2021
2022
2023
2024
- Navigate by Thread:
- Prev:
Re: EPICS 7 and VxWorks 6.9 for PPC604? Johnson, Andrew N. via Core-talk
- Next:
Re: EPICS 7 and VxWorks 6.9 for PPC604? Zimoch Dirk (PSI) via Core-talk
- Index:
2002
2003
2004
2005
2006
2007
2008
2009
2010
2011
2012
2013
2014
2015
2016
2017
2018
2019
<2020>
2021
2022
2023
2024
|