search for: stackgrowsup

Displaying 9 results from an estimated 9 matches for "stackgrowsup".

2013 Oct 12
3
[LLVMdev] [RFC] CodeGen Context
...he 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 will need to be addressed on a case-by...
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
2008 Feb 04
0
[LLVMdev] Exception handling in JIT
...+ > +void JITDwarfEmitter::EmitFrameMoves(intptr_t BaseLabelPtr, > + const std::vector<MachineMove> > &Moves) { > + unsigned PointerSize = TD->getPointerSize(); > + int stackGrowth = stackGrowthDirection == > TargetFrameInfo::StackGrowsUp ? > + PointerSize : -PointerSize; > + bool IsLocal = BaseLabelPtr; > + > + for (unsigned i = 0, N = Moves.size(); i < N; ++i) { > + const MachineMove &Move = Moves[i]; > + unsigned LabelID = Move.getLabelID(); > + > + if (LabelID) { > + Lab...
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:
2007 Dec 11
0
[LLVMdev] Exception handling in JIT
...ves(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; ++i) { > + const MachineMove &Move = Mov...
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
...lready 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 will...
2007 Dec 12
3
[LLVMdev] Exception handling in JIT
...r, >> + 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; ++i) { >> + const...
2012 Jul 16
3
[LLVMdev] RFC: LLVM incubation, or requirements for committing new backends
...s Options, > + Reloc::Model RM, CodeModel::Model CM, > + CodeGenOpt::Level OptLevel > +) > +: > + LLVMTargetMachine(T, TT, CPU, FS, Options, RM, CM, OptLevel), > + Subtarget(TT, CPU, FS), > + DataLayout(Subtarget.getDataLayout()), > + FrameLowering(TargetFrameLowering::StackGrowsUp, > + Subtarget.device()->getStackAlignment(), 0), > + IntrinsicInfo(this), > + InstrItins(&Subtarget.getInstrItineraryData()), > + mDump(false) > + > +{ > + // TLInfo uses InstrInfo so it must be initialized after. > + if (Subtarget.device()->getGeneratio...