Displaying 16 results from an estimated 16 matches for "targetoperandinfo".
2008 Sep 24
0
[LLVMdev] Determining the register type of a MachineOperand
You can get to the MachineInstr from a MachineOperand. Then get to its
TargetInstrDesc and TargetOperandInfo which has register class
information.
Evan
On Sep 23, 2008, at 12:44 PM, Villmow, Micah wrote:
> How do I determine what type of register(i.e. i32, f32, etc..) I am
> accessing from a MachineOperand? I.e. how do I get to the MVT
> struct, or equivalent information, from a MachineO...
2007 May 11
2
[LLVMdev] Live Intervals and Register Classes
...al?
I'm assuming that all LiveRange entries in the LiveInterval
are consistent in that if allocated to a register they would
all go in the same register class. Fair assumption?
If I take the first LiveRange LR from LI, look up its
instruction/operand at "start" and then look at its
TargetOperandInfo and send TOI::RegClass to
MRegisterInfo:getRegClass, is that sufficient.
It seems way overly complicated.
After LiveIntervalAnalysis runs we have a set of LIs we can
iterate over. What's the most efficient way to get the
register classes for these intervals so I know which machine
registers...
2008 Sep 23
2
[LLVMdev] Determining the register type of a MachineOperand
How do I determine what type of register(i.e. i32, f32, etc..) I am
accessing from a MachineOperand? I.e. how do I get to the MVT struct, or
equivalent information, from a MachineOperand object?
Micah Villmow
Systems Engineer
Advanced Technology & Performance
Advanced Micro Devices Inc.
4555 Great America Pkwy,
Santa Clara, CA. 95054
P: 408-572-6219
F: 408-572-6596
2007 Feb 12
2
[LLVMdev] bitconvert for multi-typed RegisterClasses
...instruction with the following selection pattern (store (f32 Regs:
$src), ADDRri:$addr), rather than adding a pattern such as the
following:
def : Pat<(store (f32 Regs:$src), ADDRri:$addr), (ST32 Regs:$src,
ADDRri:$addr)>;
The above pattern produced the following error because the
TargetOperandInfo for the 1 operand of the store had a NULL register
class.
llvm/lib/CodeGen/SelectionDAG/ScheduleDAG.cpp:304: failed assertion
`RC && "Don't have operand info for this instruction!"'
Why the pseudo-op doesn't have this problem, I'm not clear.
Thanks
--
Christ...
2007 Feb 13
0
[LLVMdev] bitconvert for multi-typed RegisterClasses
...ng selection pattern (store (f32 Regs:
> $src), ADDRri:$addr), rather than adding a pattern such as the
> following:
>
> def : Pat<(store (f32 Regs:$src), ADDRri:$addr), (ST32 Regs:$src,
> ADDRri:$addr)>;
>
> The above pattern produced the following error because the
> TargetOperandInfo for the 1 operand of the store had a NULL register
> class.
>
> llvm/lib/CodeGen/SelectionDAG/ScheduleDAG.cpp:304: failed assertion
> `RC && "Don't have operand info for this instruction!"'
>
> Why the pseudo-op doesn't have this problem, I'm not...
2008 Sep 24
2
[LLVMdev] Determining the register type of a MachineOperand
...vmdev-bounces at cs.uiuc.edu]
On Behalf Of Evan Cheng
Sent: Wednesday, September 24, 2008 10:22 AM
To: LLVM Developers Mailing List
Subject: Re: [LLVMdev] Determining the register type of a MachineOperand
You can get to the MachineInstr from a MachineOperand. Then get to its
TargetInstrDesc and TargetOperandInfo which has register class
information.
Evan
On Sep 23, 2008, at 12:44 PM, Villmow, Micah wrote:
How do I determine what type of register(i.e. i32, f32, etc..) I am
accessing from a MachineOperand? I.e. how do I get to the MVT struct, or
equivalent information, from a MachineOperand obje...
2008 Sep 03
3
[LLVMdev] Instruction MVT::ValueTypes
...example, in an SSE operand you want to know
the type of data contained in it (32-bit [or less] or 64-bit) to generate
optimal code. Just knowing that it's a 128-bit vector register that can hold
8-, 16-, 32- or 64-bit data is not enough.
Getting this information into the TargetInstrInfo / TargetOperandInfo would
take a fair amount of TableGen and .td file hacking, I would think. Right?
-Dave
2008 Sep 02
0
[LLVMdev] Instruction MVT::ValueTypes
On Sep 2, 2008, at 10:42 AM, David Greene wrote:
> Is there an easy way to get the MVT::ValueType of a MachineInstruction
> MachineOperand? For example, the register operand of an x86 MOVAPD
> should
> have an MVT::ValueType of v2f64. A MOVAPS register operand should
> have an
> MVT::ValueType of v4f32.
The short answer is no. A op of a number of different VTs can map to
2009 Jan 23
1
[LLVMdev] How to determine Immediate Type in MachineOperand class?
Hi,
I would like to get the type of immediate value (integer) from MachineOperand Class. Currently the immediate value is being represented as int64_t.
int64_t ImmVal; // For MO_Immediate.
Is it possible to find out whether the immediate value is int8, 16, 32 etc?
Note: My target has a virtual Instruction set.
Thanks in advance,
-Sanjay
-------------- next part --------------
An
2007 May 11
0
[LLVMdev] Live Intervals and Register Classes
David Greene wrote:
> If I take the first LiveRange LR from LI, look up its
> instruction/operand at "start" and then look at its
> TargetOperandInfo and send TOI::RegClass to
> MRegisterInfo:getRegClass, is that sufficient.
>
> It seems way overly complicated.
Umm...yeah. That way be dragons. :-/
Fortunately, I found
MachineFunction::getSSARegMap()->getRegClass(LI.reg) which
works swimmingly.
-Dav...
2008 Sep 02
2
[LLVMdev] Instruction MVT::ValueTypes
Is there an easy way to get the MVT::ValueType of a MachineInstruction
MachineOperand? For example, the register operand of an x86 MOVAPD should
have an MVT::ValueType of v2f64. A MOVAPS register operand should have an
MVT::ValueType of v4f32.
So given a MachineInstruction and its MachineOperands is there some easy way
to derive this information? I don't see anything in TargetInstrInfo
2008 Sep 24
0
[LLVMdev] Determining the register type of a MachineOperand
...half Of Evan Cheng
> Sent: Wednesday, September 24, 2008 10:22 AM
> To: LLVM Developers Mailing List
> Subject: Re: [LLVMdev] Determining the register type of a
> MachineOperand
>
> You can get to the MachineInstr from a MachineOperand. Then get to
> its TargetInstrDesc and TargetOperandInfo which has register class
> information.
>
> Evan
>
> On Sep 23, 2008, at 12:44 PM, Villmow, Micah wrote:
>
>
> How do I determine what type of register(i.e. i32, f32, etc..) I am
> accessing from a MachineOperand? I.e. how do I get to the MVT
> struct, or equival...
2007 Feb 14
1
[LLVMdev] bitconvert for multi-typed RegisterClasses
...Regs:
>> $src), ADDRri:$addr), rather than adding a pattern such as the
>> following:
>>
>> def : Pat<(store (f32 Regs:$src), ADDRri:$addr), (ST32 Regs:$src,
>> ADDRri:$addr)>;
>>
>> The above pattern produced the following error because the
>> TargetOperandInfo for the 1 operand of the store had a NULL register
>> class.
>>
>> llvm/lib/CodeGen/SelectionDAG/ScheduleDAG.cpp:304: failed assertion
>> `RC && "Don't have operand info for this instruction!"'
>>
>> Why the pseudo-op doesn't have th...
2007 Feb 12
0
[LLVMdev] bitconvert for multi-typed RegisterClasses
On Feb 12, 2007, at 1:41 AM, Christopher Lamb wrote:
>
> selector refused to select certain ops (specifically stores) for some
> instructions when the operand type wasn't the first type for the
> register class. After some digging around I seem to have solved the
> problem by creating bitconvert patterns between the types in the
> register class like the following:
>
>
2007 Feb 12
2
[LLVMdev] bitconvert for multi-typed RegisterClasses
Hi All,
I'm working on a back end for an architecture that makes use of multi-
typed register classes.
def MR: RegisterClass<"namespace", [type1, type2, ... ], ... >
When running some preliminary tests I found that the instruction
selector refused to select certain ops (specifically stores) for some
instructions when the operand type wasn't the first type for the
2011 May 06
0
[LLVMdev] Question about linking llvm-mc when porting a new backend
..., std::char_traits<char>, std::allocator<char> >
const&)in libLLVMEBCCodeGen.a(EBCSubtarget.cpp.o)
llvm::EBCSubtarget::~EBCSubtarget()in
libLLVMEBCCodeGen.a(EBCSubtarget.cpp.o)
llvm::EBCSubtarget::~EBCSubtarget()in
libLLVMEBCCodeGen.a(EBCSubtarget.cpp.o)
"llvm::TargetOperandInfo::getRegClass(llvm::TargetRegisterInfo const*)
const", referenced from:
(anonymous
namespace)::StackSlotColoring::PropagateForward(llvm::ilist_iterator<llvm::MachineInstr>,
llvm::MachineBasicBlock*, unsigned int, unsigned int)
in...