search for: emitprolog

Displaying 4 results from an estimated 4 matches for "emitprolog".

Did you mean: emitprologue
2006 Oct 06
2
[LLVMdev] should PEI::calculateFrameObjectOffsets align the stack?
...be 8 bytes aligned during function calls. A function that has at least one function call then has a stack size of 8 bytes. PEI::calculateFrameObjectOffsets corretly computes this correctly. The problem is that the alignment is computed before adding space for the call frame size. This is done in emitProlog. Currently the ARM backend has a bug in that it doesn't align the new stack. Fixing this bug is simple, but it introduces an inefficiency due to aligning twice. For example, consider f: ------------------------------------------------- void g(int a, int b, int c, int d, int e); void f(void)...
2009 Jan 15
0
[LLVMdev] Bug in documentation, TargetRegisterInfo.h
/// emitProlog/emitEpilog - These methods insert prolog and epilog code into /// the function. The return value is the number of instructions /// added to (negative if removed from) the basic block (entry for prologue). /// virtual void emitPrologue(MachineFunction &MF) const = 0; virtual void...
2006 Oct 06
0
[LLVMdev] should PEI::calculateFrameObjectOffsets align the stack?
...nction calls. A > function that has at least one function call then has a stack size of > 8 bytes. PEI::calculateFrameObjectOffsets corretly computes this > correctly. > > The problem is that the alignment is computed before adding space for > the call frame size. This is done in emitProlog. Currently the ARM > backend has a bug in that it doesn't align the new stack. This sounds like the ADJCALLSTACK DOWN/UP 'instructions' around the call aren't set right, or you have declared a SP offset. It doesn't look like the ARM backend does this, so this is probably...
2015 Aug 16
2
[LLVMdev] Adding a stack probe function attribute
...in Microsoft's code. I suspect this is due to debug or unwinding information, since it is allowed on Windows x86-32. I ran into two issues while implementing this. The epilog was inserted into the wrong basic block. This is because the basic blocks to insert epilogs into is calculated before emitPrologue is called. I fixed this by adding the following code after the emitPrologue call in PEI::insertPrologEpilogCode: RestoreBlocks.clear(); calculateSets(Fn); This doesn't seem like a very nice solution. It's also unclear to me how Microsoft's branch handles this. The other issue i...