]> granicus.if.org Git - llvm/commitdiff
Change RelaxELFRelocations for llc.
authorRafael Espindola <rafael.espindola@gmail.com>
Fri, 17 Jun 2016 17:43:41 +0000 (17:43 +0000)
committerRafael Espindola <rafael.espindola@gmail.com>
Fri, 17 Jun 2016 17:43:41 +0000 (17:43 +0000)
As a developer tool it makes sense for it to use the new relocations.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@273019 91177308-0d34-0410-b5e6-96231b3b80d8

include/llvm/Target/TargetOptions.h
test/CodeGen/X86/relax-reloc.ll [new file with mode: 0644]

index 1de8a5baacc814be1e6dd7da604711ac1f4e032f..508b5d940b5734559ec706bc036e1aa7a68bfbb2 100644 (file)
@@ -98,7 +98,7 @@ namespace llvm {
           GuaranteedTailCallOpt(false), StackAlignmentOverride(0),
           StackSymbolOrdering(true), EnableFastISel(false), UseInitArray(false),
           DisableIntegratedAS(false), CompressDebugSections(false),
-          RelaxELFRelocations(false), FunctionSections(false),
+          RelaxELFRelocations(true), FunctionSections(false),
           DataSections(false), UniqueSectionNames(true), TrapUnreachable(false),
           EmulatedTLS(false), FloatABIType(FloatABI::Default),
           AllowFPOpFusion(FPOpFusion::Standard), Reciprocals(TargetRecip()),
diff --git a/test/CodeGen/X86/relax-reloc.ll b/test/CodeGen/X86/relax-reloc.ll
new file mode 100644 (file)
index 0000000..aa55de0
--- /dev/null
@@ -0,0 +1,15 @@
+; RUN: llc %s -o %t.o -filetype=obj -relocation-model=pic
+; RUN: llvm-readobj -r %t.o | FileCheck %s
+; CHECK:      Section ({{.}}) .rela.text {
+; CHECK-NEXT:   0x3 R_X86_64_REX_GOTPCRELX a 0xFFFFFFFFFFFFFFFC
+; CHECK-NEXT: }
+
+target datalayout = "e-m:e-i64:64-f80:128-n8:16:32:64-S128"
+target triple = "x86_64-unknown-linux-gnu"
+
+@a = external global i32
+
+define i32 @f() {
+  %t = load i32, i32* @a
+  ret i32 %t
+}