search for: getstackgrowthdirection

Displaying 13 results from an estimated 13 matches for "getstackgrowthdirection".

2013 Sep 25
2
[LLVMdev] Register scavenger and SP/FP adjustments
...& "TM::getRegisterInfo() must be implemented!"); const TargetInstrInfo &TII = *Fn.getTarget().getInstrInfo(); const TargetRegisterInfo &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 =...
2013 Sep 26
0
[LLVMdev] Register scavenger and SP/FP adjustments
..."TM::getRegisterInfo() must be implemented!"); > const TargetInstrInfo &TII = *Fn.getTarget().getInstrInfo(); > const TargetRegisterInfo &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 (Machin...
2013 Oct 12
3
[LLVMdev] [RFC] CodeGen Context
...de won't be able to cache any of the objects the CGContext creates (this has already been addressed). The CGContext can be reached through the MachineFunction object: CGContext &context = MF->getContext(); const TargetFrameLowering *TFL = context->getFrameLowering(); if (TFL->getStackGrowthDirection() == TargetFrameLowering::StackGrowsUp) { // ... } Currently, the best place to process the function attributes is towards the beginning of the `SelectionDAGISel::runOnMachineFunction()' method. This has one side-effect --- the CGContext may not be available to IR passes which use it. This...
2013 Sep 26
2
[LLVMdev] Register scavenger and SP/FP adjustments
...erInfo() must be implemented!"); >> const TargetInstrInfo &TII = *Fn.getTarget().getInstrInfo(); >> const TargetRegisterInfo &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); >...
2013 Sep 26
0
[LLVMdev] Register scavenger and SP/FP adjustments
...e implemented!"); >>> const TargetInstrInfo &TII = *Fn.getTarget().getInstrInfo(); >>> const TargetRegisterInfo &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->enterBas...
2013 Sep 26
1
[LLVMdev] Register scavenger and SP/FP adjustments
...); >>>> const TargetInstrInfo &TII = *Fn.getTarget().getInstrInfo(); >>>> const TargetRegisterInfo &TRI = *TM.getRegisterInfo(); >>>> const TargetFrameLowering *TFI = TM.getFrameLowering(); >>>> bool StackGrowsDown = >>>> TFI->getStackGrowthDirection() == >>>> TargetFrameLowering::StackGrowsDown; >>>> int FrameSetupOpcode = TII.getCallFrameSetupOpcode(); >>>> int FrameDestroyOpcode = TII.getCallFrameDestroyOpcode(); >>>> >>>> if (RS && !FrameIndexVirtualScavengi...
2007 Dec 11
0
[LLVMdev] Exception handling in JIT
...; }; > } > > +void DwarfJITEmitter::EmitFrameMoves(intptr_t BaseLabelPtr, > + const > std::vector<MachineMove> &Moves) { > + unsigned PointerSize = TD.getPointerSize(); > + int stackGrowth = > + TM.getFrameInfo()->getStackGrowthDirection() == > + TargetFrameInfo::StackGrowsUp ? > + PointerSize : -PointerSize; > + // TODO bool IsLocal = BaseLabel && strcmp(BaseLabel, "label") > == 0; > + bool IsLocal = BaseLabelPtr; > + > + for (unsigned i = 0, N = Moves.size(); i < N; +...
2007 Dec 10
2
[LLVMdev] Exception handling in JIT
Hi everyone, Here's a patch that enables exception handling when jitting. I've copy/pasted _many_code from lib/Codegen/DwarfWriter.cpp, so we may need to factorize it, but the functionality is there and I'm very happy with it :) lli should now be able to execute the output from llvm-gcc when using exceptions (the UnwindInst instruction is not involved in this patch). Just add the
2013 Oct 13
0
[LLVMdev] [RFC] CodeGen Context
...the objects the CGContext > creates (this has already been addressed). > > The CGContext can be reached through the MachineFunction object: > > CGContext &context = MF->getContext(); > const TargetFrameLowering *TFL = context->getFrameLowering(); > > if (TFL->getStackGrowthDirection() == TargetFrameLowering::StackGrowsUp) { > // ... > } > > Currently, the best place to process the function attributes is towards the > beginning of the `SelectionDAGISel::runOnMachineFunction()' method. This has one > side-effect --- the CGContext may not be available to...
2008 Apr 17
1
[LLVMdev] Being able to know the jitted code-size before emitting
Thx again Evan for the review. Here's a new patch for the JIT in itself. The major changes are: 1) A JITMemoryManager now has a flag saying "I require to know the size of what you want to emit" 2) DwarfJITEmitter is augmented with GetSize* functions 3) JITEmitter::startFunction checks if the JITMemoryManager requires to know the size. If so, it computes it and gives it through the
2007 Dec 12
3
[LLVMdev] Exception handling in JIT
...;> +void DwarfJITEmitter::EmitFrameMoves(intptr_t BaseLabelPtr, >> + const >> std::vector<MachineMove> &Moves) { >> + unsigned PointerSize = TD.getPointerSize(); >> + int stackGrowth = >> + TM.getFrameInfo()->getStackGrowthDirection() == >> + TargetFrameInfo::StackGrowsUp ? >> + PointerSize : -PointerSize; >> + // TODO bool IsLocal = BaseLabel && strcmp(BaseLabel, "label") >> == 0; >> + bool IsLocal = BaseLabelPtr; >> + >> + for (unsigned i = 0, N...
2008 Feb 04
0
[LLVMdev] Exception handling in JIT
...unsigned char* > EndFunction) { > + const TargetMachine& TM = F.getTarget(); > + TD = TM.getTargetData(); > + needsIndirectEncoding = TM.getTargetAsmInfo()- > >getNeedsIndirectEncoding(); > + stackGrowthDirection = TM.getFrameInfo()- > >getStackGrowthDirection(); > + RI = TM.getRegisterInfo(); > + MCE = &mce; > + > + unsigned char* ExceptionTable = EmitExceptionTable(&F, > StartFunction, > + EndFunction); > + > + unsigned char* Result = 0; > + unsigned char* EHF...
2008 Feb 01
2
[LLVMdev] Exception handling in JIT
Dear all, Here's a new patch with Evan's comments (thx Evan!) and some cleanups. Now the (duplicated) exception handling code is in a new file: lib/ExecutionEngine/JIT/JITDwarfEmitter. This patch should work on linux/x86 and linux/ppc (tested). Nicolas -------------- next part -------------- An embedded and charset-unspecified text was scrubbed... Name: jit-exceptions.patch URL: