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...