Displaying 9 results from an estimated 9 matches for "gettargetconstantpool".
2006 Sep 20
1
[LLVMdev] using the constant pool during select
...e and, if it can't, produces a load:
---------------------------------------------------------------------------------------
const Type *OpNTy = MVT::getTypeForValueType(MVT::i32);
Constant *C = ConstantUInt::get(OpNTy, t);
int alignment = 2;
SDOperand Addr = CurDAG->getTargetConstantPool(C, MVT::i32, alignment);
Arg = CurDAG->getLoad(MVT::i32, CurDAG->getEntryNode(), Addr,
CurDAG->getSrcValue(NULL));
----------------------------------------------------------------------------------------
This fails with the assert "This target-inde...
2009 Feb 17
1
[LLVMdev] ARM backend playing with alternative jump table implementations
...rgetJumpTable(JT->getIndex(), PTy);
#if 1
// @@ GET TABLE BASE: current code
Table = DAG.getNode(ARMISD::WrapperJT, MVT::i32, JTI, UId);
#else
// @ MY ATTEMPT AT MOVING THIS OUT
ARMConstantPoolValue *CPV = new ARMConstantPoolValue("a_jump_table", 666);
SDValue TableValue = DAG.getTargetConstantPool(CPV, PTy, 2);
SDValue CPAddr = DAG.getNode(ARMISD::Wrapper, MVT::i32, TableValue);
Table = DAG.getLoad(PTy, dl, DAG.getEntryNode(), CPAddr, NULL, 0);
#endif
Index = DAG.getNode(ISD::MUL, dl, PTy, Index, DAG.getConstant(4, PTy));
//Index = DAG.getNode(ISD::MUL, dl, PTy, TableAddress, DAG.ge...
2006 Oct 19
1
[LLVMdev] jump table x constant pool
I had some problems adding the address of a jump table to the constant
pool. The problem is that the address of a jump table is not a
GlobalValue.Currently I decided to expand BRIND so that I can work on
simpler problems :-)
A small brain dump on the issue:
GlobalValues are currently used to represent functions and global
variables. Maybe we could also use then for anything that will have a
label
2013 Sep 25
1
[LLVMdev] arm64 / iOS support
...DD pair since they should evaluate
+ // to zero when they remain undefined. In PIC mode the GOT can take care of
+ // this, but in absolute mode we use a constant pool load.
+ SDValue PoolAddr;
+ PoolAddr = DAG.getNode(AArch64ISD::WrapperSmall, dl, PtrVT,
+ DAG.getTargetConstantPool(GV, PtrVT, 0, 0,
+ AArch64II::MO_NO_FLAG),
+ DAG.getTargetConstantPool(GV, PtrVT, 0, 0,
+ AArch64II::MO_LO12),
+ DAG.getConstant(8, MVT::i32));...
2009 Jun 03
5
[LLVMdev] patch for llc/ARM: added mechanism to move switch tables from .text -> .data; also cleanup and documentation
...st SDValue JTI = DAG.getTargetJumpTable(JT->getIndex(), PTy);
+
+ // create a new global symbol for the jumptable
+ ARMConstantPoolValue *CPV = new ARMConstantPoolValue(".T", Num,
+ ARMCP::CPDataSegmentJumpTable);
+ const SDValue CPAddr = DAG.getTargetConstantPool(CPV, PTy, 4);
+
+ // An ARM idiosyncrasy: wrap each constant pool entry before accessing it
+ const SDValue Wrapper = DAG.getNode(ARMISD::Wrapper, dl, MVT::i32, CPAddr);
+
+ // Load Table start from constan pool
+ const SDValue Table = DAG.getLoad(PTy, dl, DAG.getEntryNode(), Wrapper, NULL, 0);...
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>
2015 Jan 11
3
[LLVMdev] [RFC] [PATCH] add tail call optimization to thumb1-only targets
...;);
+
// Handle a global address or an external symbol. If it's not one of
// those, the target's already in a register, so we don't need to do
// anything extra.
@@ -1695,11 +1717,14 @@
// Get the address of the callee into a register
SDValue CPAddr = DAG.getTargetConstantPool(CPV, getPointerTy(), 4);
+
CPAddr = DAG.getNode(ARMISD::Wrapper, dl, MVT::i32, CPAddr);
+
Callee = DAG.getLoad(getPointerTy(), dl,
DAG.getEntryNode(), CPAddr,
MachinePointerInfo::getConstantPool(),
fal...
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",
>>> +
2009 Jun 24
2
[LLVMdev] patch for llc/ARM: added mechanism to move switch tables from .text -> .data; also cleanup and documentation
...st SDValue JTI = DAG.getTargetJumpTable(JT->getIndex(), PTy);
+
+ // create a new global symbol for the jumptable
+ ARMConstantPoolValue *CPV = new ARMConstantPoolValue(".T", Num,
+ ARMCP::CPDataSegmentJumpTable);
+ const SDValue CPAddr = DAG.getTargetConstantPool(CPV, PTy, 4);
+
+ // An ARM idiosyncrasy: wrap each constant pool entry before accessing it
+ const SDValue Wrapper = DAG.getNode(ARMISD::Wrapper, dl, MVT::i32, CPAddr);
+
+ // Load Table start from constan pool
+ const SDValue Table = DAG.getLoad(PTy, dl, DAG.getEntryNode(), Wrapper, NULL, 0);...