search for: sethascalls

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

2005 Mar 22
2
[LLVMdev] Stack alignment problem
.../llvmdev/2004-July/001390.html The PrologEpilogInserter.cpp file aligns the stack only if MachineFrameInfo::hasCalls returns true, which happens only if the function has "call frame setup instruction" which my backend does not generate. Chris suggested adding explicit MachineFrameInfo::setHasCalls call, which I've tried, but it does not help. The PrologEpilogInsert.cpp file always explicitly calls setHasCalls with the value it computes, so whatever value I set manually is just overwritten. So, what's the right approach? As usual, I'll be willing to code a patch. TIA, Volodya
2006 May 16
1
[LLVMdev] Stack alignment in leaf functions
...r my target, the stack should be aligned even for leaf functions. In particular, hardware interrupt can arrive at any time, and stack should be 8-byte aligned at the time of interrupt, otherwise things will break. I can address this issue by using two tricks together: 1. Calling MachineFrameInfo::setHasCalls in my backend 2. Using the attached patch, so that value of setHasCalls is not reset to false later. Comments? BTW, I've checked other uses of MachineFrameInfo::hasCalls. For example, PPCRegisterInfo uses it to check if if callee save registers can be stored in something called "red zon...
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 to either RegInfo->getCallFrameSetupOpcode() or RegInfo->getCallFrameDestroyOpcode(). I don't have such special opcode, so hasCalls returns fal...
2005 Mar 22
0
[LLVMdev] Stack alignment problem
...r Prus wrote: > The PrologEpilogInserter.cpp file aligns the stack only if > MachineFrameInfo::hasCalls returns true, which happens only if the function > has "call frame setup instruction" which my backend does not generate. > Chris suggested adding explicit MachineFrameInfo::setHasCalls call, which I've > tried, but it does not help. The PrologEpilogInsert.cpp file always > explicitly calls setHasCalls with the value it computes, so whatever value I > set manually is just overwritten. > > So, what's the right approach? As usual, I'll be willing to code a...