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...