forked from OSchip/llvm-project
[ARM64] Enable alignment control option in front-end for ARM64.
This is the modification in llvm part. llvm-svn: 208074
This commit is contained in:
parent
1b5fd3e52a
commit
1353c3405d
|
@ -45,9 +45,20 @@ EnableARM64TailCalls("arm64-tail-calls", cl::Hidden,
|
||||||
cl::desc("Generate ARM64 tail calls (TEMPORARY OPTION)."),
|
cl::desc("Generate ARM64 tail calls (TEMPORARY OPTION)."),
|
||||||
cl::init(true));
|
cl::init(true));
|
||||||
|
|
||||||
static cl::opt<bool>
|
enum AlignMode {
|
||||||
StrictAlign("arm64-strict-align", cl::Hidden,
|
StrictAlign,
|
||||||
cl::desc("Disallow all unaligned memory accesses"));
|
NoStrictAlign
|
||||||
|
};
|
||||||
|
|
||||||
|
static cl::opt<AlignMode>
|
||||||
|
Align(cl::desc("Load/store alignment support"),
|
||||||
|
cl::Hidden, cl::init(NoStrictAlign),
|
||||||
|
cl::values(
|
||||||
|
clEnumValN(StrictAlign, "arm64-strict-align",
|
||||||
|
"Disallow all unaligned memory accesses"),
|
||||||
|
clEnumValN(NoStrictAlign, "arm64-no-strict-align",
|
||||||
|
"Allow unaligned memory accesses"),
|
||||||
|
clEnumValEnd));
|
||||||
|
|
||||||
// Place holder until extr generation is tested fully.
|
// Place holder until extr generation is tested fully.
|
||||||
static cl::opt<bool>
|
static cl::opt<bool>
|
||||||
|
@ -370,7 +381,7 @@ ARM64TargetLowering::ARM64TargetLowering(ARM64TargetMachine &TM)
|
||||||
|
|
||||||
setMinFunctionAlignment(2);
|
setMinFunctionAlignment(2);
|
||||||
|
|
||||||
RequireStrictAlign = StrictAlign;
|
RequireStrictAlign = (Align == StrictAlign);
|
||||||
|
|
||||||
setHasExtractBitsInsn(true);
|
setHasExtractBitsInsn(true);
|
||||||
|
|
||||||
|
|
|
@ -1,4 +1,5 @@
|
||||||
; RUN: llc < %s -mtriple=arm64-apple-darwin | FileCheck %s
|
; RUN: llc < %s -mtriple=arm64-apple-darwin | FileCheck %s
|
||||||
|
; RUN: llc < %s -mtriple=arm64-apple-darwin -arm64-no-strict-align | FileCheck %s
|
||||||
; RUN: llc < %s -mtriple=arm64-apple-darwin -arm64-strict-align | FileCheck %s --check-prefix=CHECK-STRICT
|
; RUN: llc < %s -mtriple=arm64-apple-darwin -arm64-strict-align | FileCheck %s --check-prefix=CHECK-STRICT
|
||||||
|
|
||||||
define i32 @f0(i32* nocapture %p) nounwind {
|
define i32 @f0(i32* nocapture %p) nounwind {
|
||||||
|
|
Loading…
Reference in New Issue