Displaying 10 results from an estimated 10 matches for "externalsymbolsdnode".
2006 Nov 15
2
[LLVMdev] LowerCALL (TargetLowering)
...and Callee = Op.getOperand(4);
MVT::ValueType RetVT= Op.Val->getValueType(0);
unsigned NumOps = (Op.getNumOperands() - 5) / 2;
std::string Name;
if (GlobalAddressSDNode *G = dyn_cast<GlobalAddressSDNode>(Callee))
Name = G->getGlobal()->getName();
else if (ExternalSymbolSDNode *S = dyn_cast<ExternalSymbolSDNode>(Callee))
Name = S->getSymbol();
unsigned opcode = funcname_to_opc[Name];
assert(opcode != 0 && "Unknown function call.");
std::vector<MVT::ValueType> Tys;
std::vector<SDOperand> Ops;
for (unsigned i =...
2006 Nov 15
0
[LLVMdev] LowerCALL (TargetLowering)
...MVT::ValueType RetVT= Op.Val->getValueType(0);
> unsigned NumOps = (Op.getNumOperands() - 5) / 2;
>
> std::string Name;
> if (GlobalAddressSDNode *G = dyn_cast<GlobalAddressSDNode>
> (Callee))
> Name = G->getGlobal()->getName();
> else if (ExternalSymbolSDNode *S =
> dyn_cast<ExternalSymbolSDNode>(Callee))
> Name = S->getSymbol();
>
> unsigned opcode = funcname_to_opc[Name];
> assert(opcode != 0 && "Unknown function call.");
>
> std::vector<MVT::ValueType> Tys;
> std::vector<S...
2013 Jul 02
1
[LLVMdev] Problem selecting the correct registers for a calling convention
...ointer you can then do:
for (Function::const_arg_iterator I = F->arg_begin(), E = F->arg_end();I !=
E; ++I)
{
unsigned Bytes = TD->getTypeSizeInBits(I->getType()) / 8;
// do stuff here
}
2) The second case is when the dyn_cast above fails because the Callee
SDValue is a
ExternalSymbolSDNode. In this case you have to manually analyze the
arguments using PartOffset.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/llvm-dev/attachments/20130702/719fc65c/attachment.html>
2013 Mar 13
5
[LLVMdev] Problems with 64-bit register operands of inline asm on ARM
...ther words, we should
probably do something like this (untested):
--- a/lib/Target/ARM/ARMISelDAGToDAG.cpp
+++ b/lib/Target/ARM/ARMISelDAGToDAG.cpp
@@ -3457,19 +3457,6 @@ SDNode *ARMDAGToDAGISel::SelectInlineAsm(SDNode *N){
bool Changed = false;
unsigned NumOps = N->getNumOperands();
- ExternalSymbolSDNode *S = dyn_cast<ExternalSymbolSDNode>(
- N->getOperand(InlineAsm::Op_AsmString));
- StringRef AsmString = StringRef(S->getSymbol());
-
- // Normally, i64 data is bounded to two arbitrary GRPs for "%r" constraint.
- // However, some instrstions (e.g. ldrexd/strexd in ARM...
2006 Nov 15
1
[LLVMdev] LowerCALL (TargetLowering)
...getValueType(0);
> > unsigned NumOps = (Op.getNumOperands() - 5) / 2;
> >
> > std::string Name;
> > if (GlobalAddressSDNode *G = dyn_cast<GlobalAddressSDNode>
> > (Callee))
> > Name = G->getGlobal()->getName();
> > else if (ExternalSymbolSDNode *S =
> > dyn_cast<ExternalSymbolSDNode>(Callee))
> > Name = S->getSymbol();
> >
> > unsigned opcode = funcname_to_opc[Name];
> > assert(opcode != 0 && "Unknown function call.");
> >
> > std::vector<MVT::ValueType...
2013 Mar 13
0
[LLVMdev] Problems with 64-bit register operands of inline asm on ARM
...ther words, we should probably do
something like this (untested):
--- a/lib/Target/ARM/ARMISelDAGToDAG.cpp
+++ b/lib/Target/ARM/ARMISelDAGToDAG.cpp
@@ -3457,19 +3457,6 @@ SDNode *ARMDAGToDAGISel::SelectInlineAsm(SDNode *N){
bool Changed = false;
unsigned NumOps = N->getNumOperands();
- ExternalSymbolSDNode *S = dyn_cast<ExternalSymbolSDNode>(
- N->getOperand(InlineAsm::Op_AsmString));
- StringRef AsmString = StringRef(S->getSymbol());
-
- // Normally, i64 data is bounded to two arbitrary GRPs for "%r"
constraint.
- // However, some instrstions (e.g. ldrexd/strexd in ARM...
2011 Apr 02
0
[LLVMdev] Callee prototype info in LowerCall()
Hello, I'm having trouble getting the function prototype of an
ExternalSymbolSDNode inside TargetLowering::LowerCall(), this way i could
get the original argument sizes before they're legalized into smaller parts.
I need this sort of information because depending on the originaltypes of
the arguments i need to use some regs or others. I tried using the isSplit
flag in ArgFlags...
2012 Mar 16
0
[LLVMdev] Lowering formal pointer arguments
...implementing this for my
backend. In LowerCall you can get the callee prototype info when the Callee
SDValue is a GlobalAddressSDNode doing cast<Function>(G->getGlobal())
(where G is GlobalAddressSDNode *G = dyn_cast<GlobalAddressSDNode>(Callee)),
but this won't work when it is a ExternalSymbolSDNode, for that case i had
to add additional info into the ISD::OutputArg struct to know the real size
of the splitted argument.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/llvm-dev/attachments/20120316/b55df694/attachment.html>
2012 Dec 17
0
[LLVMdev] Query Regarding instruction ordering of passive nodes
...ed anywhere while generating the instruction sequence. Is this related with above problem of debug location ?
The list of passive nodes are :-
ConstantSDNode
ConstantFPSDNode
RegisterSDNode
RegisterMaskSDNode
GlobalAddressSDNode
BasicBlockSDNode
FrameIndexSDNode
ConstantPoolSDNode
JumpTableSDNode
ExternalSymbolSDNode
BlockAddressSDNode
MDNodeSDNode
Thanks
Karthik
-------------- next part --------------
A non-text attachment was scrubbed...
Name: gdb11531.s
Type: application/octet-stream
Size: 10377 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-dev/attachments/20121217/5b876d39/atta...
2015 Jan 11
3
[LLVMdev] [RFC] [PATCH] add tail call optimization to thumb1-only targets
...r = DAG.getNode(ARMISD::Wrapper, dl, MVT::i32, CPAddr);
+
Callee = DAG.getLoad(getPointerTy(), dl,
DAG.getEntryNode(), CPAddr,
MachinePointerInfo::getConstantPool(),
false, false, false, 0);
+
} else if (ExternalSymbolSDNode *S=dyn_cast<ExternalSymbolSDNode>(Callee)) {
const char *Sym = S->getSymbol();
@@ -1785,6 +1810,12 @@
}
}
+ if (CallAdressShallBeForcedToHardRegR12) {
+ Chain = DAG.getCopyToReg(Chain, dl, ARM::R12,
+ Callee,Chain.getValue(1));
+ Callee...