Displaying 3 results from an estimated 3 matches for "getmvtalignment".
2008 Sep 12
0
[LLVMdev] Alignment of constant loads
...f32 types, are not
aligned to the preferred alignment but rather to the ABI alignment, at
least on x86. This seems to stem from SelectionDAG::getLoad() being
called with an alignment of 0, which then does:
if (Alignment == 0) // Ensure that codegen never sees alignment 0
Alignment = getMVTAlignment(VT);
Inside getMVTAlignment, the ABI alignment is retrieved for the given VT.
It appears that constants are already aligned to the preferred
alignment, given this code in ScheduleDAG::AddOperand():
} else if (ConstantPoolSDNode *CP =
dyn_cast<ConstantPoolSDNode>(Op)) {
[...]...
2008 Sep 13
2
[LLVMdev] Alignment of constant loads
...d and ABI.
I guess you're using a target with a lower ABI alignment for
vectors?
> This seems to stem from SelectionDAG::getLoad() being
> called with an alignment of 0, which then does:
>
> if (Alignment == 0) // Ensure that codegen never sees alignment 0
> Alignment = getMVTAlignment(VT);
>
> Inside getMVTAlignment, the ABI alignment is retrieved for the given VT.
>
> It appears that constants are already aligned to the preferred
> alignment, given this code in ScheduleDAG::AddOperand():
>
> } else if (ConstantPoolSDNode *CP =
> dyn_cast<ConstantPo...
2009 Feb 18
2
[LLVMdev] Possible error in LegalizeDAG
...1 = Result.getOperand(0);
Tmp2 = Result.getOperand(1);
Tmp1 = LegalizeOp(Tmp1);
Tmp2 = LegalizeOp(Tmp2);
}
}
This is from LegalizeDAG.cpp:2146
The problem that I see is that LD->getAlignment() is set via the call
getMVTAlignment(VT) in SelectionDAG.cpp:3385, which in turn calls
TLI.getTargetData()->getABITypeAlignment(Ty).
So, the statement if (LD->getALignment() < ABIAlignment) always fails
from what I can see. Even if I set in my DataLayout that i8 should have
a 32bit ABI alignment, this does not work becaus...