Displaying 20 results from an estimated 400 matches similar to: "[LLVMdev] should PEI::calculateFrameObjectOffsets align the stack?"
2006 Oct 06
0
[LLVMdev] should PEI::calculateFrameObjectOffsets align the stack?
On Fri, 6 Oct 2006, [UTF-8] Rafael Esp?ndola wrote:
> In ARM the stack should 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
2006 Oct 07
2
[LLVMdev] should PEI::calculateFrameObjectOffsets align the 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 the problem.
The ARM backend currently doesn't use a frame pointer. It uses the
same technique of the PPC backend to avoid add/subs around calls. In
the PPC backend we
2006 Oct 08
1
[LLVMdev] should PEI::calculateFrameObjectOffsets align the stack?
> That is irrelevant. The PEI code needs to know how much stack space is
> required for each call to allocate and align the stack frame properly. It
> gets this info from the ADJCALLSTACK instructions.
I see. Looking at PEI::calculateCalleeSavedRegisters shows that the
ADJCALLSTACK instructions is used to set up MaxCallFrameSize. Adding
debug prints also show that in the example code
2006 Oct 07
0
[LLVMdev] should PEI::calculateFrameObjectOffsets align the stack?
On Sat, 7 Oct 2006, [UTF-8] Rafael Esp?ndola wrote:
>> 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 the problem.
> The ARM backend currently doesn't use a frame pointer. It uses the
> same technique
2013 May 31
0
[LLVMdev] Customizing PEI::calculateFrameObjectOffsets()
I would like a customized version of the function
PEI::calculateFrameObjectOffsets() in PrologEpilogInserter.cpp.
What is the clean way to do this?
2004 Jun 08
1
[LLVMdev] Patch/Question: calculateFrameObjectOffsets
Hello,
the calculateFrameObjectOffsets methods in CodeGen/PrologEpilogEmitter.cpp
does not work for me, since it asserts if stack grows up, and when assert is
commented out, allocates spill slots in the same location as function
arguments, which is not right.
I've tried to fix that, and a patches. It merely adds
if (StackGrowsDown)
everywhere, so that the current logic should not be
2010 May 13
1
[LLVMdev] Attention: About to Break SystemZ and possibly other Back Ends
Hi,
Attached is a patch I'm testing. It changes how "MachineFrameInfo::HasCalls" is calculated. Basically, the way it's calculated now is in PEI. And it only looks for frame adjustments (or inline ASM) to determine if the function has a call or not. This way is much more accurate and occurs much sooner. But it breaks this test:
2004 Jul 01
1
[LLVMdev] Stack alignment problem
Hello,
it seems the Prolog/Epilog insertion does not correctly align stack for me.
Consider the PEI::calculateFrameObjectOffsets method. It only aligns the
stack if
FFI->hasCalls()
is true. The only place where
MachineFrameInfo::setHasCalls
is invoked is
PEI::saveCallerSavedRegisters
and the value 'true' is only passed when there are instructions with opcodes
equal
2012 Oct 22
0
[LLVMdev] register scavenger
I have a question about register scavenger.
I am considering using register scavenger for MIPS to free up register AT
which is currently reserved to load large immediates.
All targets which currently use register scavenger to search for a scratch
register (ARM, CellSPU, PowerPC and XCore)
override function processFunctionBeforeCalleeSavedScan and call
RegisterScavenger::setScavengingFrameIndex
2015 Nov 23
2
asan for allocas on powerpc64
In LowerGET_DYNAMIC_AREA_OFFSET() you're
calling MFI->getMaxCallFrameSize(), but it looks like that doesn't return
useful information until after the
PrologEpilogInserter's PEI::calculateCallsInformation() has run.
So maybe the lowering has to be done as part of frame index elimination?
(I'm not too familiar with this code.)
Jay.
On 23 November 2015 at 13:07, Jay Foad
2006 Aug 17
2
[LLVMdev] allocation_order_begin takes non-const reference for MachineFunction
Hi Chris,
> On Wed, 16 Aug 2006, Anton Vayvod wrote:
> > I'm willing :) I don't know how to do it. What's "to put together a
> > patch"? :)
>
> In your local CVS tree, change the methods to be const, and adjust any
> code that is neccesary for that to work. Once that is done, from the
> top level, type 'cvs diff -u >& patch.txt'
2015 Nov 24
2
asan for allocas on powerpc64
On 24 November 2015 at 13:06, Maxim Ostapenko
<m.ostapenko at partner.samsung.com> wrote:
> On 23/11/15 16:46, Jay Foad wrote:
>>
>> In LowerGET_DYNAMIC_AREA_OFFSET() you're calling
>> MFI->getMaxCallFrameSize(), but it looks like that doesn't return useful
>> information until after the PrologEpilogInserter's
>>
2008 Jul 31
4
[LLVMdev] Sparc assembly syntax
On Jul 31, 2008, at 9:57 AM, Dale Johannesen wrote:
>
> On Jul 31, 2008, at 4:52 AMPDT, Richard Pennington wrote:
>
>> Any code that I generate for the Sparc fails at assembly time using a
>> gas assembler built for the Sparc.
>>
>> I get code like the following from the code generator:
>>
>> save -96, %o6, %o6
>>
>> and get a syntax
2013 Oct 18
5
[LLVMdev] [RFC] Stackmap and Patchpoint Intrinsic Proposal
This is a proposal for adding Stackmaps and Patchpoints to LLVM. The
first client of these features is the JavaScript compiler within the
open source WebKit project.
A Stackmap is a record of variable locations (registers and stack
offsets) at a particular instruction address.
A Patchpoint is an instruction address at which space is reserved for
patching a new instruction sequence at runtime.
2016 Jul 13
2
IPRA, interprocedural register allocation, question
Mehdi,
I am perusing the 3.8 trunk sources, and don’t find evidence where I
would expect it for LLVM “downgrading” a function’s calling convention.
PrologEpilogEmitter() { “CodeGen/”
...
TFI->determineCalleeSaves() { “Target/XYZ/”
TargetFrameLowering::determineCalleeSaves() { “CodeGen/”
Return <<< some object derived
2008 Apr 16
2
[LLVMdev] RFC: PowerPC tail call optimization patch
Hello Dale,
this is an updated version of the tail call optimization patch for
powerpc. could you have a look at it?
i added code to support ppc64 (untested, will try to get access to
ppc64 on a friend's machine).
incorporated evan's formatting suggestions. ;)
will run another round of testing (llvm-test) on my powerpc g4/800
when i get the okay to commit. testing on this machine takes
2013 Oct 18
0
[LLVMdev] [RFC] Stackmap and Patchpoint Intrinsic Proposal
On Fri, Oct 18, 2013 at 1:39 AM, Andrew Trick <atrick at apple.com> wrote:
>
> The initial documentation and patches name these intrinsics in a
> "webkit" namespace. This clarifies their current purpose and conveys
> that they haven't been standardized for other JITs yet. If someone on
> the on the dev list says "yes we want to use these too, just the way
2006 Aug 17
0
[LLVMdev] allocation_order_begin takes non-const reference for MachineFunction
Thanks, Ralph, this line worked well :)
Here it is, my first patch to LLVM :)
I've changed all allocation_order_begin() and allocation_order_end() methods
to take const MachineFunction &MF as a parameter. I also added const version
of MachineFunction::getInfo<Ty>() method. And I changed three static hasFP()
functions to take const reference to MachineFunction.
While doing this
2013 Oct 18
3
[LLVMdev] [RFC] Stackmap and Patchpoint Intrinsic Proposal
----- Original Message -----
>
> On Fri, Oct 18, 2013 at 1:39 AM, Andrew Trick < atrick at apple.com >
> wrote:
>
>
>
> The initial documentation and patches name these intrinsics in a
> "webkit" namespace. This clarifies their current purpose and conveys
> that they haven't been standardized for other JITs yet. If someone on
> the on the dev
2012 Aug 06
1
[LLVMdev] processFunctionBeforeFrameFinalized setting object offset without effect, stack frame layout wrong
Hi,
Target overrides of processFunctionBeforeFrameFinalized() are misused
in two cases (MBlaze and PowerPC) to set the offsets of objects. Unfortunately
this has no effect because the offsets are immediately reset by
calculateFrameObjectOffsets().
The PowerPC backend does this to setup the stack frame layout according to
the ABI. Ie. it spills the registers etc. in a fixed layout. How to do