search for: br_jt

Displaying 20 results from an estimated 23 matches for "br_jt".

2010 Feb 23
2
[LLVMdev] Disabling emission of jump table info
I've recently changed the XCore target to implement BR_JT as a jump to a series jumps. The jump table entries are expand inline in the function so there is no longer a need to emit jump tables at the end of the function. However the emission of jump tables at the end of a function is done inside the AsmPrinter base class and there seems to be no way o...
2012 Aug 26
3
[LLVMdev] Illegal node introduced by DAGCombiner after legal phase
Hello, I'm getting an instruction selection error because DAGCombiner is introducing an illegal node after the legalizeDAG phase. Basically this is what is going on: 1) During legalization, BR_JT gets expanded introducing a (mul x, 2). 2) After legalization (AfterLegalizeDAG), that (mul x, 2) is converted to an (shl x, 1). However, that shl node introduced is illegal, and since my custom lowering code won't run after this phase it gets into the instruction selector. I would like to kn...
2010 Mar 01
2
[LLVMdev] Disabling emission of jump table info
On Mar 1, 2010, at 10:52 AM, Richard Osborne wrote: > On 23/02/10 14:58, Richard Osborne wrote: >> I've recently changed the XCore target to implement BR_JT as a jump to a >> series jumps. The jump table entries are expand inline in the function >> so there is no longer a need to emit jump tables at the end of the >> function. However the emission of jump tables at the end of a function >> is done inside the AsmPrinter base clas...
2010 Mar 01
0
[LLVMdev] Disabling emission of jump table info
On 23/02/10 14:58, Richard Osborne wrote: > I've recently changed the XCore target to implement BR_JT as a jump to a > series jumps. The jump table entries are expand inline in the function > so there is no longer a need to emit jump tables at the end of the > function. However the emission of jump tables at the end of a function > is done inside the AsmPrinter base class and there seem...
2010 Mar 02
2
[LLVMdev] Disabling emission of jump table info
...at 4:09 PM, Richard Osborne wrote: > On 01/03/10 21:14, Chris Lattner wrote: >> On Mar 1, 2010, at 10:52 AM, Richard Osborne wrote: >> >>> On 23/02/10 14:58, Richard Osborne wrote: >>> >>>> I've recently changed the XCore target to implement BR_JT as a jump to a >>>> series jumps. The jump table entries are expand inline in the function >>>> so there is no longer a need to emit jump tables at the end of the >>>> function. However the emission of jump tables at the end of a function >>>> is done...
2016 Mar 15
2
how to type-legalize a dag
...another question (if you don't mind). My EsenciaISelLowering.cpp contains the following code in the EsenciaTargetLowering class constructor: setOperationAction(ISD::BR_CC, MVT::i32, Custom); setOperationAction(ISD::BR_CC, MVT::f32, Custom); setOperationAction(ISD::BR_JT, MVT::Other, Expand); setOperationAction(ISD::BRCOND, MVT::Other, Expand); setOperationAction(ISD::SETCC, MVT::i32, Expand); setOperationAction(ISD::SETCC, MVT::f32, Expand); setOperationAction(ISD::SELECT, MVT::i32, Expand); setOp...
2010 Mar 10
2
[LLVMdev] Disabling emission of jump table info
...;> >>>> On Mar 1, 2010, at 10:52 AM, Richard Osborne wrote: >>>> >>>>> On 23/02/10 14:58, Richard Osborne wrote: >>>>> >>>>> >>>>>> I've recently changed the XCore target to implement BR_JT as a jump to a >>>>>> series jumps. The jump table entries are expand inline in the function >>>>>> so there is no longer a need to emit jump tables at the end of the >>>>>> function. However the emission of jump tables at the end of a function...
2010 Mar 02
0
[LLVMdev] Disabling emission of jump table info
On 01/03/10 21:14, Chris Lattner wrote: > On Mar 1, 2010, at 10:52 AM, Richard Osborne wrote: > >> On 23/02/10 14:58, Richard Osborne wrote: >> >>> I've recently changed the XCore target to implement BR_JT as a jump to a >>> series jumps. The jump table entries are expand inline in the function >>> so there is no longer a need to emit jump tables at the end of the >>> function. However the emission of jump tables at the end of a function >>> is done inside the AsmP...
2009 Jun 24
2
[LLVMdev] patch for llc/ARM: added mechanism to move switch tables from .text -> .data; also cleanup and documentation
...ic bool CC_ARM_APCS_Custom_f64(unsigned &ValNo, MVT &ValVT, MVT &LocVT, CCValAssign::LocInfo &LocInfo, ISD::ArgFlagsTy &ArgFlags, @@ -1686,27 +1693,119 @@ return Res; } -SDValue ARMTargetLowering::LowerBR_JT(SDValue Op, SelectionDAG &DAG) { + + +// Similar to LowerBR_JT_Inline except that the jumptable +// is moved to the data segment. +// This causes a extra load to access the table but keeps the +// text segment small and avoids some issues with generating PIC +// Needs to be activated with a com...
2009 Jun 03
5
[LLVMdev] patch for llc/ARM: added mechanism to move switch tables from .text -> .data; also cleanup and documentation
...ic bool CC_ARM_APCS_Custom_f64(unsigned &ValNo, MVT &ValVT, MVT &LocVT, CCValAssign::LocInfo &LocInfo, ISD::ArgFlagsTy &ArgFlags, @@ -1390,27 +1397,119 @@ return Res; } -SDValue ARMTargetLowering::LowerBR_JT(SDValue Op, SelectionDAG &DAG) { + + +// Similar to LowerBR_JT_Inline except that the jumptable +// is moved to the data segment. +// This causes a extra load to access the table but keeps the +// text segment small and avoids some issues with generating PIC +// Needs to be activated with a com...
2010 Mar 09
0
[LLVMdev] Disabling emission of jump table info
...ris Lattner wrote: >> >>> On Mar 1, 2010, at 10:52 AM, Richard Osborne wrote: >>> >>>> On 23/02/10 14:58, Richard Osborne wrote: >>>> >>>> >>>>> I've recently changed the XCore target to implement BR_JT as a jump to a >>>>> series jumps. The jump table entries are expand inline in the function >>>>> so there is no longer a need to emit jump tables at the end of the >>>>> function. However the emission of jump tables at the end of a function >>>...
2010 Mar 11
0
[LLVMdev] Disabling emission of jump table info
...ote: >>>>> >>>>> >>>>>> On 23/02/10 14:58, Richard Osborne wrote: >>>>>> >>>>>> >>>>>> >>>>>>> I've recently changed the XCore target to implement BR_JT as a jump to a >>>>>>> series jumps. The jump table entries are expand inline in the function >>>>>>> so there is no longer a need to emit jump tables at the end of the >>>>>>> function. However the emission of jump tables at the end of...
2009 Jul 02
2
[LLVMdev] patch for llc/ARM: added mechanism to move switch tables from .text -> .data; also cleanup and documentation
...hout using > the existing code. Did you consider implementing it using the LLVM > defaults? > I spend over a day trying to follow your suggestion. In the end I was not successful. Here is what Iearned: After setting ARMJITInfo::hasCustomJumpTables -> true setOperationAction for ISD::BR_JT -> Expand I needed to add a "brind" definition to ARMInstrInfo.td I picked "bx" but to do a proper job one would have to take older architectures into account.. The next thing was to to set setOperationAction for ISD::JumpTable -> Custom and implement the corresponding c...
2009 Jun 11
0
[LLVMdev] patch for llc/ARM: added mechanism to move switch tables from .text -> .data; also cleanup and documentation
On Jun 8, 2009, at 2:42 PM, robert muth wrote: > On Sun, Jun 7, 2009 at 11:53 PM, Evan Cheng <evan.cheng at apple.com> > wrote: >> >> On Jun 7, 2009, at 6:59 AM, robert muth wrote: >> >>> On Sat, Jun 6, 2009 at 4:51 PM, Evan Cheng<evan.cheng at apple.com> >>> wrote: >>>> +cl::opt<std::string>
2009 Jun 25
0
[LLVMdev] patch for llc/ARM: added mechanism to move switch tables from .text -> .data; also cleanup and documentation
...the existing code. Did you consider implementing it using the LLVM defaults? Using TargetAsmInfo::JumpTableDataSection is one piece of that, but there is more. As a start, you could change ARMJITInfo::hasCustomJumpTables and the "Custom" argument to setOperationAction for ISD::BR_JT in the ARMTargetLowering constructor to be conditional on your new flag. I'm sure there is more required than that, but maybe that will get you started. Otherwise, there are some problems with your custom handling for out- of-line jump tables. The most serious of these is in ARMAsmPri...
2009 Jun 08
2
[LLVMdev] patch for llc/ARM: added mechanism to move switch tables from .text -> .data; also cleanup and documentation
On Sun, Jun 7, 2009 at 11:53 PM, Evan Cheng <evan.cheng at apple.com> wrote: > > On Jun 7, 2009, at 6:59 AM, robert muth wrote: > >> On Sat, Jun 6, 2009 at 4:51 PM, Evan Cheng<evan.cheng at apple.com> >> wrote: >>> +cl::opt<std::string> FlagJumpTableSection("jumptable-section", >>> +                                          
2012 Aug 27
0
[LLVMdev] Illegal node introduced by DAGCombiner after legal phase
...To: llvmdev at cs.uiuc.edu Subject: [LLVMdev] Illegal node introduced by DAGCombiner after legal phase Hello, I'm getting an instruction selection error because DAGCombiner is introducing an illegal node after the legalizeDAG phase. Basically this is what is going on: 1) During legalization, BR_JT gets expanded introducing a (mul x, 2). 2) After legalization (AfterLegalizeDAG), that (mul x, 2) is converted to an (shl x, 1). However, that shl node introduced is illegal, and since my custom lowering code won't run after this phase it gets into the instruction selector. I would like to kn...
2009 Jul 14
0
[LLVMdev] patch for llc/ARM: added mechanism to move switch tables from .text -> .data; also cleanup and documentation
On Jul 2, 2009, at 10:48 AM, robert muth wrote: > I spend over a day trying to follow your suggestion. In the end I > was not successful. Here is what Iearned: > > After setting > > ARMJITInfo::hasCustomJumpTables -> true > setOperationAction for ISD::BR_JT -> Expand > > I needed to add a "brind" definition to ARMInstrInfo.td > I picked "bx" but to do a proper job one would have to take older > architectures > into account.. > The next thing was to to set > setOperationAction for ISD::JumpTable -> Cust...
2009 Jul 23
2
[LLVMdev] patch for llc/ARM: added mechanism to move switch tables from .text -> .data; also cleanup and documentation
...wrote: > > On Jul 2, 2009, at 10:48 AM, robert muth wrote: > > I spend over a day trying to follow your suggestion. In the end I was not > successful. Here is what Iearned: > > After setting > > ARMJITInfo::hasCustomJumpTables -> true > setOperationAction for ISD::BR_JT -> Expand > > I needed to add a "brind" definition to ARMInstrInfo.td > I picked "bx" but to do a proper job one would have to take older > architectures > into account.. > The next thing was to to set > setOperationAction for ISD::JumpTable -> Custom...
2016 Mar 15
3
how to type-legalize a dag
I have added new instructions to my target, unfortunately they are not being properly type legalized. The instructions I've added are a vector add, vector load and a vector store. Can anyone lend a hand on how to legalize them so that my target would be able to recognize them. Below is the output of llc with a -debug-only=isel. As you could see the output type for load, store, and add changes