search for: getcallframedestroyopcode

Displaying 11 results from an estimated 11 matches for "getcallframedestroyopcode".

2004 Jul 01
1
[LLVMdev] Stack alignment problem
...f 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 false and the stack is not aligned. Any ideas? - Volodya
2013 Aug 21
2
[LLVMdev] PrescheduleNodesWithMultipleUses() causing failure in PickNodeToScheduleBottomUp() ???
...| | SetUp----->PredSU <-----SU ^ ^ ^ | | | | | | ----------- | --------- | | | Setup ^ | When there are two successors of PredSU with type getCallFrameDestroyOpcode and there is order between them, if the successor of the two's matching getCallFrameSetupOpcode is a predecessor of SU, if the dependency is routed through SU, there will be a dead lock. Viz: Destroy PredSU Destroy ^ ^ ^ | | | |...
2013 Aug 22
0
[LLVMdev] PrescheduleNodesWithMultipleUses() causing failure in PickNodeToScheduleBottomUp() ???
...| | SetUp----->PredSU <-----SU ^ ^ ^ | | | | | | ----------- | --------- | | | Setup ^ | When there are two successors of PredSU with type getCallFrameDestroyOpcode and there is order between them, if the successor of the two's matching getCallFrameSetupOpcode is a predecessor of SU, if the dependency is routed through SU, there will be a dead lock. Viz: Destroy PredSU Destroy ^ ^ ^ | | | |...
2013 Sep 25
2
[LLVMdev] Register scavenger and SP/FP adjustments
...TRI = *TM.getRegisterInfo(); const TargetFrameLowering *TFI = TM.getFrameLowering(); bool StackGrowsDown = TFI->getStackGrowthDirection() == TargetFrameLowering::StackGrowsDown; int FrameSetupOpcode = TII.getCallFrameSetupOpcode(); int FrameDestroyOpcode = TII.getCallFrameDestroyOpcode(); if (RS && !FrameIndexVirtualScavenging) RS->enterBasicBlock(BB); for (MachineBasicBlock::iterator I = BB->begin(); I != BB->end(); ) { if (I->getOpcode() == FrameSetupOpcode || I->getOpcode() == FrameDestroyOpcode) { // Remember how much SP ha...
2013 Sep 26
0
[LLVMdev] Register scavenger and SP/FP adjustments
...terInfo(); > const TargetFrameLowering *TFI = TM.getFrameLowering(); > bool StackGrowsDown = > TFI->getStackGrowthDirection() == > TargetFrameLowering::StackGrowsDown; > int FrameSetupOpcode = TII.getCallFrameSetupOpcode(); > int FrameDestroyOpcode = TII.getCallFrameDestroyOpcode(); > > if (RS && !FrameIndexVirtualScavenging) RS->enterBasicBlock(BB); > > for (MachineBasicBlock::iterator I = BB->begin(); I != BB->end(); ) { > > if (I->getOpcode() == FrameSetupOpcode || > I->getOpcode() == FrameDestroyOpcode) { >...
2013 Aug 22
2
[LLVMdev] PrescheduleNodesWithMultipleUses() causing failure in PickNodeToScheduleBottomUp() ???
...| Destroy2---->PredSU <----SU ^ ^ ^ | | | | | | ----------- | --------- | | | Destroy1 ^ | In this example there are two successors of 'PredSU' with type getCallFrameDestroyOpcode (Destroy) and one is a successor of the other. Taking the successor of the two Destroys (Destroy1), noted that it's matching getCallFrameSetupOpcode (Setup1) is a predecessor of 'SU'. In this situation, re-routing the dependency on 'PredSU' through 'SU' will cause a...
2013 Sep 26
2
[LLVMdev] Register scavenger and SP/FP adjustments
...st TargetFrameLowering *TFI = TM.getFrameLowering(); >> bool StackGrowsDown = >> TFI->getStackGrowthDirection() == >> TargetFrameLowering::StackGrowsDown; >> int FrameSetupOpcode = TII.getCallFrameSetupOpcode(); >> int FrameDestroyOpcode = TII.getCallFrameDestroyOpcode(); >> >> if (RS && !FrameIndexVirtualScavenging) RS->enterBasicBlock(BB); >> >> for (MachineBasicBlock::iterator I = BB->begin(); I != BB->end(); ) { >> >> if (I->getOpcode() == FrameSetupOpcode || >> I->getOpcode() == Fra...
2013 Sep 26
0
[LLVMdev] Register scavenger and SP/FP adjustments
...owering *TFI = TM.getFrameLowering(); >>> bool StackGrowsDown = >>> TFI->getStackGrowthDirection() == >>> TargetFrameLowering::StackGrowsDown; >>> int FrameSetupOpcode = TII.getCallFrameSetupOpcode(); >>> int FrameDestroyOpcode = TII.getCallFrameDestroyOpcode(); >>> >>> if (RS && !FrameIndexVirtualScavenging) RS->enterBasicBlock(BB); >>> >>> for (MachineBasicBlock::iterator I = BB->begin(); I != BB->end(); ) { >>> >>> if (I->getOpcode() == FrameSetupOpcode || >>>...
2013 Aug 21
0
[LLVMdev] PrescheduleNodesWithMultipleUses() causing failure in PickNodeToScheduleBottomUp() ???
Here is a bit more data. After PrescheduleNodesWithMultipleUses has been run, the following Predecessor/Successor links are 'dumpAll'ed. (I attach the full dumpAll before & after "Prescheduling SU #7 next to PredSU #4 to guide scheduling in the presence of multiple uses") SU(3) Predecessors: val SU(5): Latency=1 ch SU(7): Latency=1 val SU(7): Latency=1 SU(7):
2013 Sep 26
1
[LLVMdev] Register scavenger and SP/FP adjustments
...tFrameLowering(); >>>> bool StackGrowsDown = >>>> TFI->getStackGrowthDirection() == >>>> TargetFrameLowering::StackGrowsDown; >>>> int FrameSetupOpcode = TII.getCallFrameSetupOpcode(); >>>> int FrameDestroyOpcode = TII.getCallFrameDestroyOpcode(); >>>> >>>> if (RS && !FrameIndexVirtualScavenging) RS->enterBasicBlock(BB); >>>> >>>> for (MachineBasicBlock::iterator I = BB->begin(); I != BB->end(); ) { >>>> >>>> if (I->getOpcode() == FrameSetupOpcod...
2013 Aug 20
2
[LLVMdev] PrescheduleNodesWithMultipleUses() causing failure in PickNodeToScheduleBottomUp() ???
Hi, I have an assert firing due to PickNodeToScheduleBottomUp(): 1. having a CallResource in use pushing an interference of current SUnit. 2. having no more SUnits in the AvailableQueue 3. The only interference being the SUnit that just failed due to a Call Resource. 4. An attempt to duplicate this node which has the 'Call Resource' as a physical register. Thus the call