Displaying 8 results from an estimated 8 matches for "gettypeformvt".
2009 Feb 19
3
[LLVMdev] Possible DAGCombiner or TargetData Bug
....
if (Value.getOpcode() == ISD::BIT_CONVERT && !ST->isTruncatingStore() &&
ST->isUnindexed()) {
unsigned Align = ST->getAlignment();
MVT SVT = Value.getOperand(0).getValueType();
unsigned OrigAlign = TLI.getTargetData()->
getABITypeAlignment(SVT.getTypeForMVT());
if (Align <= OrigAlign &&
((!LegalOperations && !ST->isVolatile()) ||
TLI.isOperationLegalOrCustom(ISD::STORE, SVT)))
return DAG.getStore(Chain, N->getDebugLoc(), Value.getOperand(0),
Ptr, ST->getSrcValue(),...
2009 Feb 19
0
[LLVMdev] Possible DAGCombiner or TargetData Bug
...ST->isUnindexed()) {
- unsigned Align = ST->getAlignment();
+ unsigned OrigAlign = ST->getAlignment();
MVT SVT = Value.getOperand(0).getValueType();
- unsigned OrigAlign = TLI.getTargetData()->
+ unsigned Align = TLI.getTargetData()->
getABITypeAlignment(SVT.getTypeForMVT());
if (Align <= OrigAlign &&
((!LegalOperations && !ST->isVolatile()) ||
Does that look right to you?
Dan
On Wed, February 18, 2009 4:49 pm, David Greene wrote:
> I got bit by this in LLVM 2.4 DagCombiner.cpp and it's still in trunk:
>
> SDValue...
2009 Feb 20
2
[LLVMdev] Possible DAGCombiner or TargetData Bug
...- unsigned Align = ST->getAlignment();
> + unsigned OrigAlign = ST->getAlignment();
> MVT SVT = Value.getOperand(0).getValueType();
> - unsigned OrigAlign = TLI.getTargetData()->
> + unsigned Align = TLI.getTargetData()->
> getABITypeAlignment(SVT.getTypeForMVT());
> if (Align <= OrigAlign &&
> ((!LegalOperations && !ST->isVolatile()) ||
>
> Does that look right to you?
Yes, and it fixes the problem.
What's your opinion about how TargetData and X86Subtarget define ABI alignment
for SSE registers? I t...
2009 Feb 20
0
[LLVMdev] Possible DAGCombiner or TargetData Bug
...gn = ST->getAlignment();
>> + unsigned OrigAlign = ST->getAlignment();
>> MVT SVT = Value.getOperand(0).getValueType();
>> - unsigned OrigAlign = TLI.getTargetData()->
>> + unsigned Align = TLI.getTargetData()->
>> getABITypeAlignment(SVT.getTypeForMVT());
>> if (Align <= OrigAlign &&
>> ((!LegalOperations && !ST->isVolatile()) ||
>>
>> Does that look right to you?
>
> Yes, and it fixes the problem.
Cool. I've committed this on trunk now. If you have a reasonably
reduced
tes...
2009 Feb 18
2
[LLVMdev] Possible error in LegalizeDAG
...this section
of code:
// If this is an unaligned load and the target doesn't support it,
// expand it.
if (!TLI.allowsUnalignedMemoryAccesses()) {
unsigned ABIAlignment = TLI.getTargetData()->
getABITypeAlignment(LD->getMemoryVT().getTypeForMVT());
if (LD->getAlignment() < ABIAlignment){
Result =
ExpandUnalignedLoad(cast<LoadSDNode>(Result.getNode()), DAG,
TLI);
Tmp1 = Result.getOperand(0);
Tmp2 = Result.getOperand(1...
2009 May 21
0
[LLVMdev] [PATCH] Add new phase to legalization to handle vector operations
On Wed, May 20, 2009 at 4:55 PM, Dan Gohman <gohman at apple.com> wrote:
> Can you explain why you chose the approach of using a new pass?
> I pictured removing LegalizeDAG's type legalization code would
> mostly consist of finding all the places that use TLI.getTypeAction
> and just deleting code for handling its Expand and Promote. Are you
> anticipating something more
2009 May 20
2
[LLVMdev] [PATCH] Add new phase to legalization to handle vector operations
On May 20, 2009, at 1:34 PM, Eli Friedman wrote:
> On Wed, May 20, 2009 at 1:19 PM, Eli Friedman
> <eli.friedman at gmail.com> wrote:
>
>> Per subject, this patch adding an additional pass to handle vector
>>
>> operations; the idea is that this allows removing the code from
>>
>> LegalizeDAG that handles illegal types, which should be a significant
2009 May 21
2
[LLVMdev] [PATCH] Add new phase to legalization to handle vector operations
...pe().getVectorNumElements() == 1) {
- // The input is a scalar or single-element vector.
- // Lower to a store/load so that it can be split.
- // FIXME: this could be improved probably.
- unsigned LdAlign = TLI.getTargetData()->
- getPrefTypeAlignment(Op.getValueType().getTypeForMVT());
- SDValue Ptr = DAG.CreateStackTemporary(InOp.getValueType(), LdAlign);
- int FI = cast<FrameIndexSDNode>(Ptr.getNode())->getIndex();
-
- SDValue St = DAG.getStore(DAG.getEntryNode(), dl,
- InOp, Ptr,
- Pseudo...