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