[llvm] r275658 - MIParser: reject subregister indexes on physregs

Matthias Braun via llvm-commits llvm-commits at lists.llvm.org
Fri Jul 15 18:36:18 PDT 2016


Author: matze
Date: Fri Jul 15 20:36:18 2016
New Revision: 275658

URL: http://llvm.org/viewvc/llvm-project?rev=275658&view=rev
Log:
MIParser: reject subregister indexes on physregs

Added:
    llvm/trunk/test/CodeGen/MIR/X86/subreg-on-physreg.mir
Modified:
    llvm/trunk/lib/CodeGen/MIRParser/MIParser.cpp

Modified: llvm/trunk/lib/CodeGen/MIRParser/MIParser.cpp
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/CodeGen/MIRParser/MIParser.cpp?rev=275658&r1=275657&r2=275658&view=diff
==============================================================================
--- llvm/trunk/lib/CodeGen/MIRParser/MIParser.cpp (original)
+++ llvm/trunk/lib/CodeGen/MIRParser/MIParser.cpp Fri Jul 15 20:36:18 2016
@@ -962,6 +962,8 @@ bool MIParser::parseRegisterOperand(Mach
   if (Token.is(MIToken::colon)) {
     if (parseSubRegisterIndex(SubReg))
       return true;
+    if (!TargetRegisterInfo::isVirtualRegister(Reg))
+      return error("subregister index expects a virtual register");
   }
   if ((Flags & RegState::Define) == 0) {
     if (consumeIfPresent(MIToken::lparen)) {

Added: llvm/trunk/test/CodeGen/MIR/X86/subreg-on-physreg.mir
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/test/CodeGen/MIR/X86/subreg-on-physreg.mir?rev=275658&view=auto
==============================================================================
--- llvm/trunk/test/CodeGen/MIR/X86/subreg-on-physreg.mir (added)
+++ llvm/trunk/test/CodeGen/MIR/X86/subreg-on-physreg.mir Fri Jul 15 20:36:18 2016
@@ -0,0 +1,12 @@
+# RUN: not llc -march=x86-64 -start-after machine-sink -stop-after machine-sink -o /dev/null %s 2>&1 | FileCheck %s
+# This test ensures that an error is reported for subreg index on a physreg.
+--- |
+  define void @t() { ret void }
+...
+---
+name: t
+body: |
+  bb.0:
+    ; CHECK: [[@LINE+1]]:19: subregister index expects a virtual register
+    %eax:sub_8bit = COPY %bl
+...




More information about the llvm-commits mailing list