mirror of
https://github.com/RPCS3/llvm-mirror.git
synced 2024-10-21 03:53:04 +02:00
[GlobalISel] Don't legalize non-generic instructions.
They don't have types and should be legal. llvm-svn: 277446
This commit is contained in:
parent
3f45126272
commit
d7d1c64f3d
@ -54,6 +54,12 @@ bool MachineLegalizePass::runOnMachineFunction(MachineFunction &MF) {
|
||||
// Get the next Instruction before we try to legalize, because there's a
|
||||
// good chance MI will be deleted.
|
||||
NextMI = std::next(MI);
|
||||
|
||||
// Only legalize pre-isel generic instructions: others don't have types
|
||||
// and are assumed to be legal.
|
||||
if (!isPreISelGenericOpcode(MI->getOpcode()))
|
||||
continue;
|
||||
|
||||
auto Res = Helper.legalizeInstr(*MI, Legalizer);
|
||||
|
||||
// Error out if we couldn't legalize this instruction. We may want to fall
|
||||
|
@ -0,0 +1,36 @@
|
||||
# RUN: llc -O0 -run-pass=legalize-mir -global-isel %s -o - | FileCheck %s
|
||||
# REQUIRES: global-isel
|
||||
|
||||
--- |
|
||||
target datalayout = "e-m:o-i64:64-i128:128-n32:64-S128"
|
||||
target triple = "aarch64--"
|
||||
define void @test_copy() { ret void }
|
||||
define void @test_targetspecific() { ret void }
|
||||
...
|
||||
|
||||
---
|
||||
name: test_copy
|
||||
isSSA: true
|
||||
registers:
|
||||
- { id: 0, class: _ }
|
||||
body: |
|
||||
bb.0:
|
||||
liveins: %x0
|
||||
; CHECK-LABEL: name: test_copy
|
||||
; CHECK: %0(64) = COPY %x0
|
||||
; CHECK-NEXT: %x0 = COPY %0
|
||||
|
||||
%0(64) = COPY %x0
|
||||
%x0 = COPY %0
|
||||
...
|
||||
|
||||
---
|
||||
name: test_targetspecific
|
||||
isSSA: true
|
||||
body: |
|
||||
bb.0:
|
||||
; CHECK-LABEL: name: test_targetspecific
|
||||
; CHECK: RET_ReallyLR
|
||||
|
||||
RET_ReallyLR
|
||||
...
|
Loading…
Reference in New Issue
Block a user