search for: retvt

Displaying 14 results from an estimated 14 matches for "retvt".

Did you mean: retv
2009 Sep 29
2
[LLVMdev] SoftenSetCCOpernads in LegalizeFloatTypes.cpp
While generating a libcall from floating point comparison, it always assumes that the return type of those libcalls is i32. Why not allow Targets to provide the correct return type? EVT RetVT = MVT::i32; // <-- here SDValue Ops[2] = { LHSInt, RHSInt }; NewLHS = MakeLibCall(LC1, RetVT, Ops, 2, false/*sign irrelevant*/, dl); NewRHS = DAG.getConstant(0, RetVT); CCCode = TLI.getCmpLibcallCC(LC1); I suggest to have a hook TLI.getCmpLibcallRT() on the lines of TLI.getCmp...
2006 Nov 15
1
[LLVMdev] LowerCALL (TargetLowering)
...e a look at the LowerCall routine for any other targets. You will > see that in the non-void function case, it returns a MERGE_VALUES, > i.e. all the results merged along with the chain. Sorry, I don't understand. I am only trying to look at functions that return void here (hence the RetVT == MVT::Other assertion near the end of my function). So, I think there should be only a single result - the SDOperand returned by the DAG.getNode(..), and I shouldn't need any MERGE_VALUES node. Am I missing something? Thanks! Nikhil > > Cheers, > > Evan > On Nov 15, 2006,...
2006 Nov 15
2
[LLVMdev] LowerCALL (TargetLowering)
...Chain = Op.getOperand(0); bool isVarArg = cast<ConstantSDNode>(Op.getOperand(2))->getValue() != 0; assert(!isVarArg); bool isTailCall = cast<ConstantSDNode>(Op.getOperand(3))->getValue() != 0; SDOperand 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...
2006 Nov 15
0
[LLVMdev] LowerCALL (TargetLowering)
...bool isVarArg = cast<ConstantSDNode>(Op.getOperand(2))- > >getValue() != 0; > assert(!isVarArg); > bool isTailCall = cast<ConstantSDNode>(Op.getOperand(3))- > >getValue() != 0; > SDOperand 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 *...
2009 Sep 29
0
[LLVMdev] SoftenSetCCOpernads in LegalizeFloatTypes.cpp
...float (32 bits). So it's not just a matter of changing the libcall return type. > While generating a libcall from floating point comparison, it always > assumes that the return type of those libcalls is i32. > Why not allow Targets to provide the correct return type? > > EVT RetVT = MVT::i32; // <-- here > > > SDValue Ops[2] = { LHSInt, RHSInt }; > NewLHS = MakeLibCall(LC1, RetVT, Ops, 2, false/*sign irrelevant*/, dl); > NewRHS = DAG.getConstant(0, RetVT); > CCCode = TLI.getCmpLibcallCC(LC1); > > > I suggest to have a hook TLI....
2015 Jan 31
2
[LLVMdev] debug info for llvm::IntrinsicInst ???
...trying to display and do anything with a variable of type IntrinsicInst, gdb thinks that it's an incomplete type and kind find any member functions or even display the class. (gdb) list 1337 1332 1333 // Finish off the call including any return values. 1334 return finishCall(CLI, RetVT, NumBytes); 1335 } 1336 1337 bool MipsFastISel::fastLowerIntrinsicCall(const IntrinsicInst *II) { 1338 switch (II->getIntrinsicID()) { 1339 default: 1340 return false; 1341 case Intrinsic::bswap: { (gdb) print II $10 = (const llvm::IntrinsicInst *) 0x61b8ec8 (gdb) pri...
2007 Sep 28
0
[LLVMdev] Lowering operations to 8-bit!
On Sep 28, 2007, at 11:36 AM, <Alireza.Moshtaghi at microchip.com> <Alireza.Moshtaghi at microchip.com> wrote: > I moved my code to 2.1 but still the same. > If I make ADD i16 legal, then it goes through, but it has problem > expanding it to i8. > Should I go ahead and customize it and do the same for all > instructions? > Or there is a more general thing that I
2015 Jan 31
2
[LLVMdev] debug info for llvm::IntrinsicInst ???
...trinsicInst, gdb thinks that it's an incomplete > type and kind find any member functions or even display the class. > > > > > (gdb) list 1337 > 1332 > 1333 // Finish off the call including any return values. > 1334 return finishCall(CLI, RetVT, NumBytes); > 1335 } > 1336 > 1337 bool MipsFastISel::fastLowerIntrinsicCall(const > IntrinsicInst *II) { > 1338 switch (II->getIntrinsicID()) { > 1339 default: > 1340 return false; > 1341 case Intrinsic::bswap:...
2007 Sep 28
2
[LLVMdev] Lowering operations to 8-bit!
I moved my code to 2.1 but still the same. If I make ADD i16 legal, then it goes through, but it has problem expanding it to i8. Should I go ahead and customize it and do the same for all instructions? Or there is a more general thing that I can do? A. -----Original Message----- From: llvmdev-bounces at cs.uiuc.edu [mailto:llvmdev-bounces at cs.uiuc.edu] On Behalf Of Chris Lattner Sent:
2007 Sep 28
2
[LLVMdev] Lowering operations to 8-bit!
...UES from PowerPC implementation, not sure if it is really needed) static SDOperand LowerFORMAL_ARGUMENTS(SDOperand Op, SelectionDAG &DAG){ SmallVector<SDOperand, 8> ArgValues; SDOperand Root = Op.getOperand(0); // Return the new list of results. std::vector<MVT::ValueType> RetVT(Op.Val->value_begin(), Op.Val->value_end()); const Function* Fn = DAG.getMachineFunction().getFunction(); std::cout<<Op.Val->getNumValues(); std::cout<<"----------------- "<<__FUNCTION__<<" handling FORMAL_ARG...
2014 Apr 24
3
[LLVMdev] tablegen for fast isel
What is the purpose of tablegen created files for fast-isel? If I make the following change to Makefile in lib/Target/Mips BUILT_SOURCES = MipsGenRegisterInfo.inc MipsGenInstrInfo.inc \ MipsGenAsmWriter.inc MipsGenCodeEmitter.inc \ MipsGenDAGISel.inc MipsGenCallingConv.inc \ - MipsGenSubtargetInfo.inc MipsGenMCCodeEmitter.inc \ +
2015 Jan 31
0
[LLVMdev] debug info for llvm::IntrinsicInst ???
...able of type > IntrinsicInst, gdb thinks that it's an incomplete > type and kind find any member functions or even display the class. > > > > > (gdb) list 1337 > 1332 > 1333 // Finish off the call including any return values. > 1334 return finishCall(CLI, RetVT, NumBytes); > 1335 } > 1336 > 1337 bool MipsFastISel::fastLowerIntrinsicCall(const IntrinsicInst > *II) { > 1338 switch (II->getIntrinsicID()) { > 1339 default: > 1340 return false; > 1341 case Intrinsic::bswap: { > (gdb) print II > $10 =...
2015 Jan 31
0
[LLVMdev] debug info for llvm::IntrinsicInst ???
...thinks that it's an incomplete >> type and kind find any member functions or even display the class. >> >> >> >> >> (gdb) list 1337 >> 1332 >> 1333 // Finish off the call including any return values. >> 1334 return finishCall(CLI, RetVT, NumBytes); >> 1335 } >> 1336 >> 1337 bool MipsFastISel::fastLowerIntrinsicCall(const IntrinsicInst >> *II) { >> 1338 switch (II->getIntrinsicID()) { >> 1339 default: >> 1340 return false; >> 1341 case Intrinsic::bswap:...
2013 Jun 21
3
[LLVMdev] ExpandDivRemLibCall vs. AEABI
...teach the expansion that on AEABI case, the remainder is not on the stack, but on registers. However, SelectionDAGLegalize::ExpandDivRemLibCall() assumes the remainder is *always* on the stack, as is the case for GNU: // Remainder is loaded back from the stack frame. SDValue Rem = DAG.getLoad(RetVT, dl, CallInfo.second, FIPtr, MachinePointerInfo(), false, false, false, 0); Since I don't want to add a target-specific condition there, and I found no hierarchy for DAGLegalize, I'm wondering what's the best approach. Two options could be: * Creating a fe...