Hexagon: Fix a nasty order-of-initialization bug.
Reenable the tests. llvm-svn: 146750
This commit is contained in:
parent
f6f003af6a
commit
9ca2e7293b
|
@ -56,7 +56,7 @@ HexagonTargetMachine::HexagonTargetMachine(const Target &T, StringRef TT,
|
||||||
CodeGenOpt::Level OL)
|
CodeGenOpt::Level OL)
|
||||||
: LLVMTargetMachine(T, TT, CPU, FS, Options, RM, CM, OL),
|
: LLVMTargetMachine(T, TT, CPU, FS, Options, RM, CM, OL),
|
||||||
DataLayout("e-p:32:32:32-i64:64:64-i32:32:32-i16:16:16-i1:32:32-a0:0") ,
|
DataLayout("e-p:32:32:32-i64:64:64-i32:32:32-i16:16:16-i1:32:32-a0:0") ,
|
||||||
Subtarget(TT, CPU, FS), TLInfo(*this), InstrInfo(Subtarget),
|
Subtarget(TT, CPU, FS), InstrInfo(Subtarget), TLInfo(*this),
|
||||||
TSInfo(*this),
|
TSInfo(*this),
|
||||||
FrameLowering(Subtarget),
|
FrameLowering(Subtarget),
|
||||||
InstrItins(&Subtarget.getInstrItineraryData()) {
|
InstrItins(&Subtarget.getInstrItineraryData()) {
|
||||||
|
|
|
@ -29,8 +29,8 @@ class Module;
|
||||||
class HexagonTargetMachine : public LLVMTargetMachine {
|
class HexagonTargetMachine : public LLVMTargetMachine {
|
||||||
const TargetData DataLayout; // Calculates type size & alignment.
|
const TargetData DataLayout; // Calculates type size & alignment.
|
||||||
HexagonSubtarget Subtarget;
|
HexagonSubtarget Subtarget;
|
||||||
HexagonTargetLowering TLInfo;
|
|
||||||
HexagonInstrInfo InstrInfo;
|
HexagonInstrInfo InstrInfo;
|
||||||
|
HexagonTargetLowering TLInfo;
|
||||||
HexagonSelectionDAGInfo TSInfo;
|
HexagonSelectionDAGInfo TSInfo;
|
||||||
HexagonFrameLowering FrameLowering;
|
HexagonFrameLowering FrameLowering;
|
||||||
const InstrItineraryData* InstrItins;
|
const InstrItineraryData* InstrItins;
|
||||||
|
|
|
@ -1,5 +1,4 @@
|
||||||
; RUN: true
|
; RUN: llc -march=hexagon -mcpu=hexagonv4 < %s | FileCheck %s
|
||||||
; DISABLED: llc -march=hexagon -mcpu=hexagonv4 < %s | FileCheck %s
|
|
||||||
; CHECK: r[[T0:[0-9]+]] = #7
|
; CHECK: r[[T0:[0-9]+]] = #7
|
||||||
; CHECK: memw(r29 + #0) = r[[T0]]
|
; CHECK: memw(r29 + #0) = r[[T0]]
|
||||||
; CHECK: r0 = #1
|
; CHECK: r0 = #1
|
||||||
|
|
|
@ -1,5 +1,4 @@
|
||||||
; RUN: true
|
; RUN: llc -march=hexagon -mcpu=hexagonv4 < %s | FileCheck %s
|
||||||
; DISABLED: llc -march=hexagon -mcpu=hexagonv4 < %s | FileCheck %s
|
|
||||||
; CHECK: combine(r{{[0-9]+}}, r{{[0-9]+}})
|
; CHECK: combine(r{{[0-9]+}}, r{{[0-9]+}})
|
||||||
|
|
||||||
@j = external global i32
|
@j = external global i32
|
||||||
|
|
|
@ -1,5 +1,4 @@
|
||||||
; RUN: true
|
; RUN: llc -march=hexagon -mcpu=hexagonv4 < %s | FileCheck %s
|
||||||
; DISABLED: llc -march=hexagon -mcpu=hexagonv4 < %s | FileCheck %s
|
|
||||||
; CHECK: __hexagon_adddf3
|
; CHECK: __hexagon_adddf3
|
||||||
; CHECK: __hexagon_subdf3
|
; CHECK: __hexagon_subdf3
|
||||||
|
|
||||||
|
|
|
@ -1,5 +1,4 @@
|
||||||
; RUN: true
|
; RUN: llc -march=hexagon -mcpu=hexagonv4 < %s | FileCheck %s
|
||||||
; DISABLED: llc -march=hexagon -mcpu=hexagonv4 < %s | FileCheck %s
|
|
||||||
; CHECK: __hexagon_addsf3
|
; CHECK: __hexagon_addsf3
|
||||||
; CHECK: __hexagon_subsf3
|
; CHECK: __hexagon_subsf3
|
||||||
|
|
||||||
|
|
|
@ -1,5 +1,4 @@
|
||||||
; RUN: true
|
; RUN: llc -march=hexagon -mcpu=hexagonv4 < %s | FileCheck %s
|
||||||
; DISABLED: llc -march=hexagon -mcpu=hexagonv4 < %s | FileCheck %s
|
|
||||||
|
|
||||||
@num = external global i32
|
@num = external global i32
|
||||||
@acc = external global i32
|
@acc = external global i32
|
||||||
|
|
|
@ -1,5 +1,4 @@
|
||||||
; RUN: true
|
; RUN: llc -march=hexagon -mcpu=hexagonv4 < %s | FileCheck %s
|
||||||
; DISABLED: llc -march=hexagon -mcpu=hexagonv4 < %s | FileCheck %s
|
|
||||||
; CHECK: += mpyi
|
; CHECK: += mpyi
|
||||||
|
|
||||||
define void @foo(i32 %acc, i32 %num, i32 %num2) nounwind {
|
define void @foo(i32 %acc, i32 %num, i32 %num2) nounwind {
|
||||||
|
|
|
@ -1,5 +1,4 @@
|
||||||
; RUN: true
|
; RUN: llc -march=hexagon -mcpu=hexagonv4 < %s | FileCheck %s
|
||||||
; DISABLED: llc -march=hexagon -mcpu=hexagonv4 < %s | FileCheck %s
|
|
||||||
|
|
||||||
@num = external global i32
|
@num = external global i32
|
||||||
@acc = external global i32
|
@acc = external global i32
|
||||||
|
|
|
@ -1,5 +1,4 @@
|
||||||
; RUN: true
|
; RUN: llc -march=hexagon -mcpu=hexagonv4 < %s | FileCheck %s
|
||||||
; DISABLED: llc -march=hexagon -mcpu=hexagonv4 < %s | FileCheck %s
|
|
||||||
; CHECK: r1:0 = or(r{{[0-9]}}:{{[0-9]}}, r{{[0-9]}}:{{[0-9]}})
|
; CHECK: r1:0 = or(r{{[0-9]}}:{{[0-9]}}, r{{[0-9]}}:{{[0-9]}})
|
||||||
|
|
||||||
%struct.small = type { i32, i32 }
|
%struct.small = type { i32, i32 }
|
||||||
|
|
|
@ -1,5 +1,4 @@
|
||||||
; RUN: true
|
; RUN: llc -march=hexagon -mcpu=hexagonv4 < %s | FileCheck %s
|
||||||
; DISABLED: llc -march=hexagon -mcpu=hexagonv4 < %s | FileCheck %s
|
|
||||||
; CHECK: r[[T0:[0-9]+]] = CONST32(#s2)
|
; CHECK: r[[T0:[0-9]+]] = CONST32(#s2)
|
||||||
; CHECK: r[[T1:[0-9]+]] = memw(r[[T0]] + #0)
|
; CHECK: r[[T1:[0-9]+]] = memw(r[[T0]] + #0)
|
||||||
; CHECK: memw(r29 + #0) = r[[T1]]
|
; CHECK: memw(r29 + #0) = r[[T1]]
|
||||||
|
|
|
@ -1,5 +1,4 @@
|
||||||
; RUN: true
|
; RUN: llc -march=hexagon -mcpu=hexagonv4 < %s | FileCheck %s
|
||||||
; DISABLED: llc -march=hexagon -mcpu=hexagonv4 < %s | FileCheck %s
|
|
||||||
; CHECK: vaddh(r{{[0-9]+}}, r{{[0-9]+}})
|
; CHECK: vaddh(r{{[0-9]+}}, r{{[0-9]+}})
|
||||||
|
|
||||||
@j = external global i32
|
@j = external global i32
|
||||||
|
|
Loading…
Reference in New Issue