[LLVMdev] Splitting floating point intervals.

Eli Friedman eli.friedman at gmail.com
Wed Jul 14 22:12:54 PDT 2010


On Wed, Jul 14, 2010 at 10:04 PM, Lang Hames <lhames at gmail.com> wrote:
> Hi all,
> A question for the register allocation people:
> I'm currently trying to split intervals over loop boundaries. I have a
> situation where a floating point value is split over a loop boundary, and
> the register allocator choses to spill the value outside the loop. That
> leaves me with a floating point load in the loop preheader, which is
> crashing LLC with
> X86FloatingPoint.cpp:305:
> bool<unnamed>::FPS::processBasicBlock(llvm::MachineFunction&,
> llvm::MachineBasicBlock&): Assertion `isStackEmpty() && "Stack not empty at
> end of basic block?"'
> What's going on here? Where do floating point values which are live over BB
> boundaries live, if not on the FP stack?

In memory; it's a limitation of the x87 support.

-Eli



More information about the llvm-dev mailing list