Displaying 20 results from an estimated 31 matches for "getsimplevt".
2012 Jul 26
2
[LLVMdev] Why is this assertion here?
I'm trying to understand why this assertion is here.
LegalizeAction
getCondCodeAction(ISD::CondCode CC, EVT VT) const {
assert((unsigned)CC < array_lengthof(CondCodeActions) &&
(unsigned)VT.getSimpleVT().SimpleTy < sizeof(CondCodeActions[0])*4 &&
"Table isn't big enough!");
LegalizeAction Action = (LegalizeAction)
((CondCodeActions[CC] >> (2*VT.getSimpleVT().SimpleTy)) & 3);
assert(Action != Promote && "Can't promote con...
2012 Jul 26
2
[LLVMdev] RFC: CondCodeActions refactor (was RE: Why is this assertion here?)
...y >> 5] |= (uint64_t)Action
> << (VT.SimpleTy - 32)*2; }
>
> getCondCodeAction then becomes:
> LegalizeAction
> getCondCodeAction(ISD::CondCode CC, EVT VT) const {
> assert((unsigned)CC < array_lengthof(CondCodeActions) &&
> (unsigned)VT.getSimpleVT().SimpleTy <
> MVT::LAST_VECTOR_VALUETYPE && "Table isn't big enough!");
> LegalizeAction Action = (LegalizeAction)
> ((CondCodeActions[CC][VT.getSimpleVT().SimpleTy >> 5] >>
> (2*(VT.getSimpleVT().SimpleTy - 32))) & 3); assert(Action !...
2012 Jul 26
0
[LLVMdev] RFC: CondCodeActions refactor (was RE: Why is this assertion here?)
...eActions[(unsigned)CC][VT.SimpleTy >> 5] |= (uint64_t)Action << (VT.SimpleTy - 32)*2;
}
getCondCodeAction then becomes:
LegalizeAction
getCondCodeAction(ISD::CondCode CC, EVT VT) const {
assert((unsigned)CC < array_lengthof(CondCodeActions) &&
(unsigned)VT.getSimpleVT().SimpleTy < MVT::LAST_VECTOR_VALUETYPE &&
"Table isn't big enough!");
LegalizeAction Action = (LegalizeAction)
((CondCodeActions[CC][VT.getSimpleVT().SimpleTy >> 5] >> (2*(VT.getSimpleVT().SimpleTy - 32))) & 3);
assert(Action != Pro...
2012 Jul 26
0
[LLVMdev] RFC: CondCodeActions refactor (was RE: Why is this assertion here?)
...<<
> > (VT.SimpleTy - 32)*2; }
> >
> > getCondCodeAction then becomes:
> > LegalizeAction
> > getCondCodeAction(ISD::CondCode CC, EVT VT) const {
> > assert((unsigned)CC < array_lengthof(CondCodeActions) &&
> > (unsigned)VT.getSimpleVT().SimpleTy <
> > MVT::LAST_VECTOR_VALUETYPE && "Table isn't big enough!");
> > LegalizeAction Action = (LegalizeAction)
> > ((CondCodeActions[CC][VT.getSimpleVT().SimpleTy >> 5] >>
> > (2*(VT.getSimpleVT().SimpleTy - 32))) &...
2009 Aug 24
1
[LLVMdev] [llvm-commits] [llvm] r79731 - /llvm/trunk/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
...I asked about it I was
> told that fixing it would be too hard/expensive.
I know, and it's somewhat unfortunate. However, this path is
extremely hot in
LLC, and was significantly contended using only two threads. I don't
have a
non-contended solution offhand.
>> VTs[VT.getSimpleVT().SimpleTy] = VT;
>> - return &VTs[VT.getSimpleVT().SimpleTy];
>> + sys::MemoryFence();
>
> I don't think this fence actually does anything useful unless
> users of the pointer do a fence before reading the contents
> of the pointer. That said, I think alpha i...
2009 Feb 07
1
[LLVMdev] Patch: More data types
...if (VT.isInteger())
// First promote to a power-of-two size, then expand if
necessary.
return VT == VT.getRoundIntegerType() ? Expand : Promote;
assert(0 && "Unsupported extended type!");
return Legal;
}
unsigned I = VT.getSimpleVT();
assert(I<4*array_lengthof(ValueTypeActions)*sizeof(ValueTypeActions[0]))
;
return (LegalizeAction)((ValueTypeActions[I>>4] >> ((2*I) & 31)) &
3);
}
void setTypeAction(MVT VT, LegalizeAction Action) {
unsigned I = VT.getSimpleVT();
assert(I<4*ar...
2009 Apr 13
1
[LLVMdev] Porting LLVM backend is no fun yet
Dan Gohman wrote:
> There certainly are wishlist items for TableGen and TableGen-based
> instruction descriptions, though I don't know of an official list.
> Offhand,
> a few things that come to mind are the ability to handle nodes with
> multiple results,
Is there an official workaround, BTW?
- Volodya
2009 Feb 03
3
[LLVMdev] Promoting i1,i8,i16
Is there a way to force llvm to promote all smaller types to i32 instead
of i16?
Thanks,
Micah Villmow
Systems Engineer
Advanced Technology & Performance
Advanced Micro Devices Inc.
S1-609 One AMD Place
Sunnyvale, CA. 94085
P: 408-749-3966
-------------- next part --------------
An HTML attachment was scrubbed...
URL:
2012 Jul 30
2
[LLVMdev] Vector promotion broken for <2 x [i8|i16]>
...ToPromoteTo(ISD::AND, MVT::v4i8) is MVT::v2i32;
The reason why this occurs is:
// See if this has an explicit type specified.
std::map<std::pair<unsigned, MVT::SimpleValueType>,
MVT::SimpleValueType>::const_iterator PTTI =
PromoteToType.find(std::make_pair(Op, VT.getSimpleVT().SimpleTy));
if (PTTI != PromoteToType.end()) return PTTI->second;
assert((VT.isInteger() || VT.isFloatingPoint()) &&
"Cannot autopromote this type, add it with AddPromotedToType.");
EVT NVT = VT;
do {
NVT = (MVT::SimpleValueType)(NVT.getSimp...
2008 Oct 13
0
[LLVMdev] api changes in llvm 2.4
...f ‘llvm::ISD’
Renamed to DBG_STOPPOINT.
8) error: ‘class llvm::SDValue’ has no member named ‘Val’
SDOperand had 'Val' which can be replaced by getNode().
9) switch(op.getOperand(1).getValueType()) does not work
In our case I could replace it with
switch(op.getOperand(1).getValueType().getSimpleVT())
10) SelectionDAGIsel::InstructionSelectBasicBlock removed
Replaced with InstructionSelect()
11) no matching function for call to
llvm::AsmPrinter::AsmPrinter(std::basic_ostream<char,
std::char_traits<char>...
The stream argument has been changed to llvm::raw_ostream
Als...
2013 Jun 17
0
[LLVMdev] Failure handling half type
...pecifically, SelectionDAGLegalize::ExpandConstantFP() assumes that f32 is the smallest floating point constant type it’ll need to handle, and that MVT enum ordering reflects that.
while (SVT != MVT::f32) {
SVT = (MVT::SimpleValueType)(SVT.getSimpleVT().SimpleTy - 1);
...
}
That function, and possibly others, need to be taught how to handle half-floats, it looks like.
-Jim
On Jun 17, 2013, at 6:59 AM, Alessio Giovanni Baroni <alessiogiovanni.baroni at gmail.com> wrote:
> Hi,
>
> if I write the following simple program:...
2008 Oct 11
2
[LLVMdev] api changes in llvm 2.4
In the 2.3 release, we included a list of the major LLVM API changes.
If you are working on upgrading your code from 2.3 to 2.4, I'd
appreciate it if you could compile a list of the major stumbling
blocks you have, so that others can benefit from your experience.
Please send any info to the list, thanks!
-Chris
2013 Jun 18
2
[LLVMdev] Failure handling half type
...looks like a bug.
> Specifically, SelectionDAGLegalize::ExpandConstantFP() assumes that f32 is
> the smallest floating point constant type it’ll need to handle, and that
> MVT enum ordering reflects that.
>
> while (SVT != MVT::f32) {
>
> SVT = (MVT::SimpleValueType)(SVT.getSimpleVT().SimpleTy - 1);
> ...
> }
>
> That function, and possibly others, need to be taught how to handle
> half-floats, it looks like.
>
> -Jim
>
> On Jun 17, 2013, at 6:59 AM, Alessio Giovanni Baroni <
> alessiogiovanni.baroni at gmail.com> wrote:
>
> Hi,...
2013 Jun 17
2
[LLVMdev] Failure handling half type
Hi,
if I write the following simple program:
target datalayout =
"e-p:64:64:64-i1:8:8-i8:8:8-i16:16:16-i32:32:32-i64:64:64-f32:32:32-f64:64:64-v64:64:64-v128:128:128-a0:0:64-s0:64:64-f80:128:128-n8:16:32:64-S128"
target triple = "x86_64-unknown-linux-gnu"
define void @foo () {
%1 = alloca half
store half 0xH42CC, half* %1 ; 0xH42CC = 3.4
%2 = load half* %1
2012 Jul 30
0
[LLVMdev] Vector promotion broken for <2 x [i8|i16]>
...ToPromoteTo(ISD::AND, MVT::v4i8) is MVT::v2i32;
The reason why this occurs is:
// See if this has an explicit type specified.
std::map<std::pair<unsigned, MVT::SimpleValueType>,
MVT::SimpleValueType>::const_iterator PTTI =
PromoteToType.find(std::make_pair(Op, VT.getSimpleVT().SimpleTy));
if (PTTI != PromoteToType.end()) return PTTI->second;
assert((VT.isInteger() || VT.isFloatingPoint()) &&
"Cannot autopromote this type, add it with AddPromotedToType.");
EVT NVT = VT;
do {
NVT = (MVT::SimpleValueType)(NVT.getSimp...
2012 Feb 10
1
[LLVMdev] Prevent DAG combiner from changing "store ConstFP, addr" to integer store
...ores. For example, on x86-32 an f64 can be stored
in one
// processor operation but an i64 (which is not legal) requires two.
So the
// transform should not be done in this case.
if (Value.getOpcode() != ISD::TargetConstantFP) {
SDValue Tmp;
switch (CFP->getValueType(0).getSimpleVT().SimpleTy) {
default: llvm_unreachable("Unknown FP type");
case MVT::f80: // We don't do this for these yet.
case MVT::f128:
case MVT::ppcf128:
break;
case MVT::f32:
if ((isTypeLegal(MVT::i32) && !LegalOperations &&
!ST...
2012 Jul 30
2
[LLVMdev] Vector promotion broken for <2 x [i8|i16]>
...MVT::v2i32;
>
> The reason why this occurs is:
> // See if this has an explicit type specified.
> std::map<std::pair<unsigned, MVT::SimpleValueType>,
> MVT::SimpleValueType>::const_iterator PTTI =
> PromoteToType.find(std::make_pair(Op,
> VT.getSimpleVT().SimpleTy));
> if (PTTI != PromoteToType.end()) return PTTI->second;
>
> assert((VT.isInteger() || VT.isFloatingPoint()) &&
> "Cannot autopromote this type, add it with
> AddPromotedToType.");
>
> EVT NVT = VT;
> do {
>...
2012 Jul 30
0
[LLVMdev] Vector promotion broken for <2 x [i8|i16]>
...MVT::v2i32;
>
> The reason why this occurs is:
> // See if this has an explicit type specified.
> std::map<std::pair<unsigned, MVT::SimpleValueType>,
> MVT::SimpleValueType>::const_iterator PTTI =
> PromoteToType.find(std::make_pair(Op,
> VT.getSimpleVT().SimpleTy));
> if (PTTI != PromoteToType.end()) return PTTI->second;
>
> assert((VT.isInteger() || VT.isFloatingPoint()) &&
> "Cannot autopromote this type, add it with
> AddPromotedToType.");
>
> EVT NVT = VT;
> do {
>...
2012 Jul 30
0
[LLVMdev] Vector promotion broken for <2 x [i8|i16]>
I don't know how your target architecture looks like, but I suspect that <4 x i8> should not be legalized to <1 x i32>. I think that what you are seeing is that <4 x i8> is first split into <2 x i8>, and later promoted to <2 x i32>. At the moment different targets can only affect type-legalization by declaring different legal types. A number of us discussed the
2013 Jun 29
0
[LLVMdev] Failure handling half type
...Specifically, SelectionDAGLegalize::ExpandConstantFP() assumes that f32 is
>> the smallest floating point constant type it’ll need to handle, and that
>> MVT enum ordering reflects that.
>>
>> while (SVT != MVT::f32) {
>>
>> SVT = (MVT::SimpleValueType)(SVT.getSimpleVT().SimpleTy - 1);
>> ...
>> }
>>
>> That function, and possibly others, need to be taught how to handle
>> half-floats, it looks like.
>>
>> -Jim
>>
>> On Jun 17, 2013, at 6:59 AM, Alessio Giovanni Baroni <
>> alessiogiovanni.baron...