[llvm] r271281 - [Hexagon] Disable expanding MUX instructions that define a subregister
Krzysztof Parzyszek via llvm-commits
llvm-commits at lists.llvm.org
Tue May 31 07:27:14 PDT 2016
Author: kparzysz
Date: Tue May 31 09:27:10 2016
New Revision: 271281
URL: http://llvm.org/viewvc/llvm-project?rev=271281&view=rev
Log:
[Hexagon] Disable expanding MUX instructions that define a subregister
The code in HexagonExpandCondsets.cpp does not handle those cases at the
moment.
Modified:
llvm/trunk/lib/Target/Hexagon/HexagonExpandCondsets.cpp
Modified: llvm/trunk/lib/Target/Hexagon/HexagonExpandCondsets.cpp
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Target/Hexagon/HexagonExpandCondsets.cpp?rev=271281&r1=271280&r2=271281&view=diff
==============================================================================
--- llvm/trunk/lib/Target/Hexagon/HexagonExpandCondsets.cpp (original)
+++ llvm/trunk/lib/Target/Hexagon/HexagonExpandCondsets.cpp Tue May 31 09:27:10 2016
@@ -991,6 +991,11 @@ bool HexagonExpandCondsets::predicate(Ma
// some registers, which would complicate the transformation considerably.
if (!MS.isKill())
return false;
+ // Avoid predicating instructions that define a subregister. The code
+ // does not handle correctly cases where both subregisters of a register
+ // are defined by a condset.
+ if (MD.getSubReg())
+ return false;
RegisterRef RT(MS);
unsigned PredR = MP.getReg();
More information about the llvm-commits
mailing list