Author: krejzi Date: Sun Mar 10 11:39:33 2013 New Revision: 2618 Log: Add llvm r600 backend fix.
Added: trunk/llvm/llvm-3.2-r600_fixes-1.patch Added: trunk/llvm/llvm-3.2-r600_fixes-1.patch ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ trunk/llvm/llvm-3.2-r600_fixes-1.patch Sun Mar 10 11:39:33 2013 (r2618) @@ -0,0 +1,66 @@ +Submitted By: Armin K. <krejzi at email dot com> +Date: 2013-03-10 +Initial Package Version: 3.2 +Upstream Status: Probably fixed in latest svn. +Origin: Tom Stellard's web site. +Description: Fixes for R600 backend from http://people.freedesktop.org/~tstellar/llvm/3.2/bug-fixes/ + +From af4d115e2c9c4cfd8b099aaef9a13c2972c36272 Mon Sep 17 00:00:00 2001 +From: Tom Stellard <[email protected]> +Date: Thu, 6 Dec 2012 18:05:30 +0000 +Subject: [PATCH] LegalizeDAG: Allow type promotion for scalar stores + +--- + lib/CodeGen/SelectionDAG/LegalizeDAG.cpp | 7 ++++--- + 1 file changed, 4 insertions(+), 3 deletions(-) + +diff --git a/lib/CodeGen/SelectionDAG/LegalizeDAG.cpp b/lib/CodeGen/SelectionDAG/LegalizeDAG.cpp +index abf40b7..9946694 100644 +--- a/lib/CodeGen/SelectionDAG/LegalizeDAG.cpp ++++ b/lib/CodeGen/SelectionDAG/LegalizeDAG.cpp +@@ -731,9 +731,10 @@ void SelectionDAGLegalize::LegalizeStoreOps(SDNode *Node) { + return; + } + case TargetLowering::Promote: { +- assert(VT.isVector() && "Unknown legal promote case!"); +- Value = DAG.getNode(ISD::BITCAST, dl, +- TLI.getTypeToPromoteTo(ISD::STORE, VT), Value); ++ EVT NVT = TLI.getTypeToPromoteTo(ISD::STORE, VT); ++ assert(NVT.getSizeInBits() == VT.getSizeInBits() && ++ "Can only promote stores to same size type"); ++ Value = DAG.getNode(ISD::BITCAST, dl, NVT, Value); + SDValue Result = + DAG.getStore(Chain, dl, Value, Ptr, + ST->getPointerInfo(), isVolatile, +-- +1.7.11.4 + +From 831cdb83e03319eeb36b6249e20e2908672397c2 Mon Sep 17 00:00:00 2001 +From: Tom Stellard <[email protected]> +Date: Thu, 6 Dec 2012 22:43:13 +0000 +Subject: [PATCH] LegalizeDAG: Allow promotion of scalar loads + +--- + lib/CodeGen/SelectionDAG/LegalizeDAG.cpp | 5 ++--- + 1 file changed, 2 insertions(+), 3 deletions(-) + +diff --git a/lib/CodeGen/SelectionDAG/LegalizeDAG.cpp b/lib/CodeGen/SelectionDAG/LegalizeDAG.cpp +index 9946694..2596f00 100644 +--- a/lib/CodeGen/SelectionDAG/LegalizeDAG.cpp ++++ b/lib/CodeGen/SelectionDAG/LegalizeDAG.cpp +@@ -890,10 +890,9 @@ void SelectionDAGLegalize::LegalizeLoadOps(SDNode *Node) { + break; + } + case TargetLowering::Promote: { +- // Only promote a load of vector type to another. +- assert(VT.isVector() && "Cannot promote this load!"); +- // Change base type to a different vector type. + EVT NVT = TLI.getTypeToPromoteTo(Node->getOpcode(), VT); ++ assert(NVT.getSizeInBits() == VT.getSizeInBits() && ++ "Can only promote loads to same size type"); + + SDValue Res = DAG.getLoad(NVT, dl, Chain, Ptr, LD->getPointerInfo(), + LD->isVolatile(), LD->isNonTemporal(), +-- +1.7.11.4 + -- http://linuxfromscratch.org/mailman/listinfo/patches FAQ: http://www.linuxfromscratch.org/faq/ Unsubscribe: See the above information page
