mirror of
https://github.com/RPCS3/llvm-mirror.git
synced 2024-11-25 12:12:47 +01:00
[AIX] Turn -fdata-sections on by default in Clang
Summary: This patch does the following: 1. Make InitTargetOptionsFromCodeGenFlags() accepts Triple as a parameter, because some options' default value is triple dependant. 2. DataSections is turned on by default on AIX for llc. 3. Test cases change accordingly because of the default behaviour change. 4. Clang Driver passes in -fdata-sections by default on AIX. Reviewed By: MaskRay, DiggerLin Differential Revision: https://reviews.llvm.org/D88737
This commit is contained in:
parent
500c5cb174
commit
d77cbcb130
@ -771,6 +771,11 @@ public:
|
||||
return isAndroid() || isOSOpenBSD() || isWindowsCygwinEnvironment();
|
||||
}
|
||||
|
||||
/// Tests whether the target uses -data-sections as default.
|
||||
bool hasDefaultDataSections() const {
|
||||
return isOSBinFormatXCOFF() || isWasm();
|
||||
}
|
||||
|
||||
/// @}
|
||||
/// @name Mutators
|
||||
/// @{
|
||||
|
@ -14,6 +14,7 @@
|
||||
|
||||
#include "llvm/ADT/FloatingPointMode.h"
|
||||
#include "llvm/ADT/StringExtras.h"
|
||||
#include "llvm/ADT/Triple.h"
|
||||
#include "llvm/IR/Instructions.h"
|
||||
#include "llvm/IR/Intrinsics.h"
|
||||
#include "llvm/MC/MCTargetOptionsCommandFlags.h"
|
||||
@ -134,9 +135,13 @@ struct RegisterCodeGenFlags {
|
||||
|
||||
llvm::BasicBlockSection getBBSectionsMode(llvm::TargetOptions &Options);
|
||||
|
||||
// Common utility function tightly tied to the options listed here. Initializes
|
||||
// a TargetOptions object with CodeGen flags and returns it.
|
||||
TargetOptions InitTargetOptionsFromCodeGenFlags();
|
||||
/// Common utility function tightly tied to the options listed here. Initializes
|
||||
/// a TargetOptions object with CodeGen flags and returns it.
|
||||
/// \p TheTriple is used to determine the default value for options if
|
||||
/// options are not explicitly specified. If those triple dependant options
|
||||
/// value do not have effect for your component, a default Triple() could be
|
||||
/// passed in.
|
||||
TargetOptions InitTargetOptionsFromCodeGenFlags(const llvm::Triple &TheTriple);
|
||||
|
||||
std::string getCPUStr();
|
||||
|
||||
|
@ -461,7 +461,8 @@ codegen::getBBSectionsMode(llvm::TargetOptions &Options) {
|
||||
|
||||
// Common utility function tightly tied to the options listed here. Initializes
|
||||
// a TargetOptions object with CodeGen flags and returns it.
|
||||
TargetOptions codegen::InitTargetOptionsFromCodeGenFlags() {
|
||||
TargetOptions
|
||||
codegen::InitTargetOptionsFromCodeGenFlags(const Triple &TheTriple) {
|
||||
TargetOptions Options;
|
||||
Options.AllowFPOpFusion = getFuseFPOps();
|
||||
Options.UnsafeFPMath = getEnableUnsafeFPMath();
|
||||
@ -485,7 +486,8 @@ TargetOptions codegen::InitTargetOptionsFromCodeGenFlags() {
|
||||
Options.StackSymbolOrdering = getStackSymbolOrdering();
|
||||
Options.UseInitArray = !getUseCtors();
|
||||
Options.RelaxELFRelocations = getRelaxELFRelocations();
|
||||
Options.DataSections = getDataSections();
|
||||
Options.DataSections =
|
||||
getExplicitDataSections().getValueOr(TheTriple.hasDefaultDataSections());
|
||||
Options.FunctionSections = getFunctionSections();
|
||||
Options.IgnoreXCOFFVisibility = getIgnoreXCOFFVisibility();
|
||||
Options.BBSections = getBBSectionsMode(Options);
|
||||
|
@ -2,10 +2,10 @@
|
||||
; is implemnted.
|
||||
|
||||
; RUN: llc -verify-machineinstrs -mtriple powerpc-ibm-aix-xcoff -mcpu=pwr4 \
|
||||
; RUN: -mattr=-altivec < %s | \
|
||||
; RUN: -mattr=-altivec -data-sections=false < %s | \
|
||||
; RUN: FileCheck --check-prefix=ASM %s
|
||||
; RUN: llc -verify-machineinstrs -mtriple powerpc64-ibm-aix-xcoff -mcpu=pwr4 \
|
||||
; RUN: -mattr=-altivec < %s | \
|
||||
; RUN: -mattr=-altivec -data-sections=false < %s | \
|
||||
; RUN: FileCheck --check-prefix=ASM %s
|
||||
|
||||
@var = global i32 42
|
||||
|
@ -1,5 +1,5 @@
|
||||
; RUN: llc -verify-machineinstrs -mcpu=pwr7 -mtriple powerpc-ibm-aix-xcoff < %s | FileCheck %s
|
||||
; RUN: llc -verify-machineinstrs -mcpu=pwr7 -mtriple powerpc64-ibm-aix-xcoff < %s | FileCheck %s
|
||||
; RUN: llc -verify-machineinstrs -mcpu=pwr7 -mtriple powerpc-ibm-aix-xcoff -data-sections=false < %s | FileCheck %s
|
||||
; RUN: llc -verify-machineinstrs -mcpu=pwr7 -mtriple powerpc64-ibm-aix-xcoff -data-sections=false < %s | FileCheck %s
|
||||
|
||||
@str = constant [256 x i8] c"\01\02\03\04\05\06\07\08\09\0A\0B\0C\0D\0E\0F\10\11\12\13\14\15\16\17\18\19\1A\1B\1C\1D\1E\1F !\22#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\]^_`abcdefghijklmnopqrstuvwxyz{|}~\7F\80\81\82\83\84\85\86\87\88\89\8A\8B\8C\8D\8E\8F\90\91\92\93\94\95\96\97\98\99\9A\9B\9C\9D\9E\9F\A0\A1\A2\A3\A4\A5\A6\A7\A8\A9\AA\AB\AC\AD\AE\AF\B0\B1\B2\B3\B4\B5\B6\B7\B8\B9\BA\BB\BC\BD\BE\BF\C0\C1\C2\C3\C4\C5\C6\C7\C8\C9\CA\CB\CC\CD\CE\CF\D0\D1\D2\D3\D4\D5\D6\D7\D8\D9\DA\DB\DC\DD\DE\DF\E0\E1\E2\E3\E4\E5\E6\E7\E8\E9\EA\EB\EC\ED\EE\EF\F0\F1\F2\F3\F4\F5\F6\F7\F8\F9\FA\FB\FC\FD\FE\FF\00", align 1
|
||||
|
||||
|
@ -1,15 +1,16 @@
|
||||
; RUN: llc -verify-machineinstrs -mtriple powerpc-ibm-aix-xcoff -mcpu=pwr4 \
|
||||
; RUN: -mattr=-altivec < %s | FileCheck --check-prefixes=COMMON,BIT32 %s
|
||||
; RUN: -mattr=-altivec -data-sections=false < %s | FileCheck --check-prefixes=COMMON,BIT32 %s
|
||||
|
||||
; RUN: llc -verify-machineinstrs -mtriple powerpc64-ibm-aix-xcoff -mcpu=pwr4 \
|
||||
; RUN: -mattr=-altivec < %s | FileCheck --check-prefixes=COMMON,BIT64 %s
|
||||
; RUN: -mattr=-altivec -data-sections=false < %s | FileCheck --check-prefixes=COMMON,BIT64 %s
|
||||
|
||||
; RUN: llc -verify-machineinstrs -mtriple powerpc-ibm-aix-xcoff -mcpu=pwr4 \
|
||||
; RUN: -mattr=-altivec -filetype=obj -o %t.o < %s
|
||||
; RUN: -mattr=-altivec -data-sections=false -filetype=obj -o %t.o < %s
|
||||
; RUN: llvm-readobj --symbols %t.o | FileCheck --check-prefix=CHECKSYM %s
|
||||
|
||||
; RUN: not --crash llc -verify-machineinstrs -mcpu=pwr4 -mtriple powerpc64-ibm-aix-xcoff \
|
||||
; RUN: -mattr=-altivec -filetype=obj -o %t.o 2>&1 < %s | FileCheck --check-prefix=XCOFF64 %s
|
||||
; RUN: -mattr=-altivec -data-sections=false -filetype=obj -o %t.o 2>&1 < %s | \
|
||||
; RUN: FileCheck --check-prefix=XCOFF64 %s
|
||||
; XCOFF64: LLVM ERROR: 64-bit XCOFF object files are not supported yet.
|
||||
|
||||
|
||||
|
@ -1,15 +1,15 @@
|
||||
; RUN: llc -verify-machineinstrs -mtriple powerpc-ibm-aix-xcoff -mcpu=pwr4 \
|
||||
; RUN: -mattr=-altivec < %s | FileCheck --check-prefixes=COMMON,BIT32 %s
|
||||
; RUN: -mattr=-altivec -data-sections=false < %s | FileCheck --check-prefixes=COMMON,BIT32 %s
|
||||
|
||||
; RUN: llc -verify-machineinstrs -mtriple powerpc64-ibm-aix-xcoff -mcpu=pwr4 \
|
||||
; RUN: -mattr=-altivec < %s | FileCheck --check-prefixes=COMMON,BIT64 %s
|
||||
; RUN: -mattr=-altivec -data-sections=false < %s | FileCheck --check-prefixes=COMMON,BIT64 %s
|
||||
|
||||
; RUN: llc -verify-machineinstrs -mtriple powerpc-ibm-aix-xcoff -mcpu=pwr4 \
|
||||
; RUN: -mattr=-altivec -filetype=obj -o %t.o < %s
|
||||
; RUN: -mattr=-altivec -data-sections=false -filetype=obj -o %t.o < %s
|
||||
; RUN: llvm-readobj --symbols %t.o | FileCheck --check-prefix=CHECKSYM %s
|
||||
|
||||
; RUN: not --crash llc -verify-machineinstrs -mcpu=pwr4 -mtriple powerpc64-ibm-aix-xcoff \
|
||||
; RUN: -mattr=-altivec -filetype=obj -o %t.o 2>&1 < %s | FileCheck --check-prefix=XCOFF64 %s
|
||||
; RUN: -mattr=-altivec -data-sections=false -filetype=obj -o %t.o 2>&1 < %s | FileCheck --check-prefix=XCOFF64 %s
|
||||
; XCOFF64: LLVM ERROR: 64-bit XCOFF object files are not supported yet.
|
||||
|
||||
@bar_p = global i32 (...)* @bar_ref, align 4
|
||||
|
@ -1,14 +1,14 @@
|
||||
; RUN: llc -verify-machineinstrs -mtriple powerpc-ibm-aix-xcoff -mcpu=pwr4 \
|
||||
; RUN: -mattr=-altivec < %s | \
|
||||
; RUN: -mattr=-altivec -data-sections=false < %s | \
|
||||
; RUN: FileCheck --check-prefix=VISIBILITY-ASM %s
|
||||
; RUN: llc -verify-machineinstrs -mtriple powerpc-ibm-aix-xcoff -mcpu=pwr4 \
|
||||
; RUN: -mattr=-altivec -ignore-xcoff-visibility < %s | \
|
||||
; RUN: -mattr=-altivec -data-sections=false -ignore-xcoff-visibility < %s | \
|
||||
; RUN: FileCheck --check-prefix=IGNOREVISIBILITY-ASM %s
|
||||
; RUN: llc -verify-machineinstrs -mtriple powerpc64-ibm-aix-xcoff -mcpu=pwr4 \
|
||||
; RUN: -mattr=-altivec < %s | \
|
||||
; RUN: -mattr=-altivec -data-sections=false < %s | \
|
||||
; RUN: FileCheck --check-prefix=VISIBILITY-ASM %s
|
||||
; RUN: llc -verify-machineinstrs -mtriple powerpc64-ibm-aix-xcoff -mcpu=pwr4 \
|
||||
; RUN: -mattr=-altivec -ignore-xcoff-visibility < %s | \
|
||||
; RUN: -mattr=-altivec -data-sections=false -ignore-xcoff-visibility < %s | \
|
||||
; RUN: FileCheck --check-prefix=IGNOREVISIBILITY-ASM %s
|
||||
|
||||
@foo_p = global void ()* @zoo_extern_h, align 4
|
||||
|
@ -1,17 +1,17 @@
|
||||
# UNSUPPORTED: expensive_checks, debug
|
||||
|
||||
# RUN: %python %s > %t.ll
|
||||
# RUN: llc -mtriple powerpc-ibm-aix-xcoff -code-model=small -mcpu=pwr4 -mattr=-altivec -O0 < %t.ll | \
|
||||
# RUN: llc -mtriple powerpc-ibm-aix-xcoff -code-model=small -data-sections=false -mcpu=pwr4 -mattr=-altivec -O0 < %t.ll | \
|
||||
# RUN: FileCheck --check-prefix=ASM32 %s
|
||||
|
||||
# RUN: llc -mtriple powerpc64-ibm-aix-xcoff -code-model=small -mcpu=pwr4 -mattr=-altivec -O0 < %t.ll | \
|
||||
# RUN: llc -mtriple powerpc64-ibm-aix-xcoff -code-model=small -data-sections=false -mcpu=pwr4 -mattr=-altivec -O0 < %t.ll | \
|
||||
# RUN: FileCheck --check-prefix=ASM64 %s
|
||||
|
||||
# RUN: llc -mtriple powerpc-ibm-aix-xcoff -code-model=small -mcpu=pwr4 -mattr=-altivec -O0 \
|
||||
# RUN: llc -mtriple powerpc-ibm-aix-xcoff -code-model=small -data-sections=false -mcpu=pwr4 -mattr=-altivec -O0 \
|
||||
# RUN: -filetype=obj -o %t.o < %t.ll
|
||||
# RUN: llvm-objdump -D -r --symbol-description %t.o | FileCheck --check-prefix=DIS32 %s
|
||||
|
||||
# RUN: not --crash llc -mtriple powerpc64-ibm-aix-xcoff \
|
||||
# RUN: not --crash llc -mtriple powerpc64-ibm-aix-xcoff -data-sections=false \
|
||||
# RUN: -mcpu=pwr4 -mattr=-altivec -filetype=obj -o %t.o 2>&1 < %t.ll | \
|
||||
# RUN: FileCheck --check-prefix=XCOFF64 %s
|
||||
# XCOFF64: LLVM ERROR: 64-bit XCOFF object files are not supported yet.
|
||||
|
@ -1,5 +1,7 @@
|
||||
; RUN: llc -verify-machineinstrs -mcpu=pwr4 -mtriple powerpc-ibm-aix-xcoff --relocation-model=pic < %s | FileCheck %s
|
||||
; RUN: llc -verify-machineinstrs -mcpu=pwr4 -mtriple powerpc64-ibm-aix-xcoff --relocation-model=pic < %s | FileCheck --check-prefix=CHECK64 %s
|
||||
; RUN: llc -verify-machineinstrs -mcpu=pwr4 -mtriple powerpc-ibm-aix-xcoff \
|
||||
; RUN: --relocation-model=pic -data-sections=false < %s | FileCheck %s
|
||||
; RUN: llc -verify-machineinstrs -mcpu=pwr4 -mtriple powerpc64-ibm-aix-xcoff \
|
||||
; RUN: --relocation-model=pic -data-sections=false < %s | FileCheck --check-prefix=CHECK64 %s
|
||||
|
||||
@a = common global i32 0
|
||||
@b = constant i32* @a
|
||||
|
@ -1,5 +1,7 @@
|
||||
; RUN: llc -verify-machineinstrs -mcpu=pwr4 -mtriple powerpc-ibm-aix-xcoff < %s | FileCheck %s
|
||||
; RUN: llc -verify-machineinstrs -mcpu=pwr4 -mtriple powerpc64-ibm-aix-xcoff < %s | FileCheck --check-prefix=CHECK64 %s
|
||||
; RUN: llc -verify-machineinstrs -mcpu=pwr4 -mtriple powerpc-ibm-aix-xcoff \
|
||||
; RUN: -data-sections=false < %s | FileCheck %s
|
||||
; RUN: llc -verify-machineinstrs -mcpu=pwr4 -mtriple powerpc64-ibm-aix-xcoff \
|
||||
; RUN: -data-sections=false < %s | FileCheck --check-prefix=CHECK64 %s
|
||||
|
||||
@foo_ptr = global void (...)* @foo
|
||||
declare void @foo(...)
|
||||
|
@ -1,5 +1,5 @@
|
||||
; RUN: llc -mcpu=pwr4 -mtriple=powerpc-ibm-aix-xcoff -verify-machineinstrs < %s | FileCheck %s
|
||||
; RUN: llc -mcpu=pwr4 -mtriple=powerpc-ibm-aix-xcoff -verify-machineinstrs -filetype=obj -o %t.o < %s
|
||||
; RUN: llc -mcpu=pwr4 -mtriple=powerpc-ibm-aix-xcoff -verify-machineinstrs -data-sections=false < %s | FileCheck %s
|
||||
; RUN: llc -mcpu=pwr4 -mtriple=powerpc-ibm-aix-xcoff -verify-machineinstrs -data-sections=false -filetype=obj -o %t.o < %s
|
||||
; RUN: llvm-objdump -D %t.o | FileCheck --check-prefix=CHECKOBJ %s
|
||||
; RUN: llvm-readobj -sections %t.o | FileCheck --check-prefix=CHECKSECT %s
|
||||
|
||||
|
@ -1,15 +1,16 @@
|
||||
; RUN: llc -verify-machineinstrs -mtriple powerpc-ibm-aix-xcoff -mcpu=pwr4 \
|
||||
; RUN: -mattr=-altivec < %s | FileCheck --check-prefixes=COMMON,BIT32 %s
|
||||
; RUN: -mattr=-altivec -data-sections=false < %s | FileCheck --check-prefixes=COMMON,BIT32 %s
|
||||
|
||||
; RUN: llc -verify-machineinstrs -mtriple powerpc64-ibm-aix-xcoff -mcpu=pwr4 \
|
||||
; RUN: -mattr=-altivec < %s | FileCheck --check-prefixes=COMMON,BIT64 %s
|
||||
; RUN: -mattr=-altivec -data-sections=false < %s | FileCheck --check-prefixes=COMMON,BIT64 %s
|
||||
|
||||
; RUN: llc -verify-machineinstrs -mtriple powerpc-ibm-aix-xcoff -mcpu=pwr4 \
|
||||
; RUN: -mattr=-altivec -filetype=obj -o %t.o < %s
|
||||
; RUN: -mattr=-altivec -data-sections=false -filetype=obj -o %t.o < %s
|
||||
; RUN: llvm-readobj --symbols %t.o | FileCheck --check-prefix=CHECKSYM %s
|
||||
|
||||
; RUN: not --crash llc -verify-machineinstrs -mcpu=pwr4 -mtriple powerpc64-ibm-aix-xcoff \
|
||||
; RUN: -mattr=-altivec -filetype=obj -o %t.o 2>&1 < %s | FileCheck --check-prefix=XCOFF64 %s
|
||||
; RUN: -mattr=-altivec -data-sections=false -filetype=obj -o %t.o 2>&1 < %s | \
|
||||
; RUN: FileCheck --check-prefix=XCOFF64 %s
|
||||
; XCOFF64: LLVM ERROR: 64-bit XCOFF object files are not supported yet.
|
||||
|
||||
@foo_weak_p = global void (...)* bitcast (void ()* @foo_ref_weak to void (...)*), align 4
|
||||
|
@ -6,6 +6,24 @@
|
||||
; RUN: llvm-objdump -D --symbol-description %t.o | FileCheck --check-prefix=CHECKOBJ %s
|
||||
; RUN: llvm-readobj -syms %t.o | FileCheck --check-prefix=CHECKSYM %s
|
||||
|
||||
;; Test to see if the default is correct for -data-sections on AIX.
|
||||
; RUN: llc -verify-machineinstrs -mcpu=pwr4 -mtriple powerpc-ibm-aix-xcoff < %s | \
|
||||
; RUN: FileCheck --check-prefixes=CHECK,CHECK32 %s
|
||||
; RUN: llc -verify-machineinstrs -mcpu=pwr4 -mtriple powerpc64-ibm-aix-xcoff < %s | \
|
||||
; RUN: FileCheck --check-prefixes=CHECK,CHECK64 %s
|
||||
; RUN: llc -verify-machineinstrs -mcpu=pwr4 -mtriple powerpc-ibm-aix-xcoff -filetype=obj -o %t.o < %s
|
||||
; RUN: llvm-objdump -D --symbol-description %t.o | FileCheck --check-prefix=CHECKOBJ %s
|
||||
; RUN: llvm-readobj -syms %t.o | FileCheck --check-prefix=CHECKSYM %s
|
||||
|
||||
;; Test to see if the default is correct for -data-sections on AIX.
|
||||
; RUN: llc -verify-machineinstrs -mcpu=pwr4 -mtriple powerpc-ibm-aix-xcoff < %s | \
|
||||
; RUN: FileCheck --check-prefixes=CHECK,CHECK32 %s
|
||||
; RUN: llc -verify-machineinstrs -mcpu=pwr4 -mtriple powerpc64-ibm-aix-xcoff < %s | \
|
||||
; RUN: FileCheck --check-prefixes=CHECK,CHECK64 %s
|
||||
; RUN: llc -verify-machineinstrs -mcpu=pwr4 -mtriple powerpc-ibm-aix-xcoff -filetype=obj -o %t.o < %s
|
||||
; RUN: llvm-objdump -D --symbol-description %t.o | FileCheck --check-prefix=CHECKOBJ %s
|
||||
; RUN: llvm-readobj -syms %t.o | FileCheck --check-prefix=CHECKSYM %s
|
||||
|
||||
@ivar = local_unnamed_addr global i32 35, align 4
|
||||
@const_ivar = constant i32 35, align 4
|
||||
|
||||
|
@ -1,15 +1,15 @@
|
||||
; This file tests the codegen of initialized and common variables in AIX
|
||||
; assembly and XCOFF object files.
|
||||
|
||||
; RUN: llc -mtriple powerpc-ibm-aix-xcoff < %s | FileCheck --check-prefixes=CHECK,CHECK32 %s
|
||||
; RUN: llc -mtriple powerpc64-ibm-aix-xcoff < %s | FileCheck --check-prefixes=CHECK,CHECK64 %s
|
||||
; RUN: llc -mtriple powerpc-ibm-aix-xcoff -data-sections=false < %s | FileCheck --check-prefixes=CHECK,CHECK32 %s
|
||||
; RUN: llc -mtriple powerpc64-ibm-aix-xcoff -data-sections=false < %s | FileCheck --check-prefixes=CHECK,CHECK64 %s
|
||||
|
||||
; RUN: llc -mtriple powerpc-ibm-aix-xcoff -filetype=obj -o %t.o < %s
|
||||
; RUN: llc -mtriple powerpc-ibm-aix-xcoff -data-sections=false -filetype=obj -o %t.o < %s
|
||||
; RUN: llvm-readobj --section-headers --file-header %t.o | \
|
||||
; RUN: FileCheck --check-prefix=OBJ %s
|
||||
; RUN: llvm-readobj --syms %t.o | FileCheck --check-prefix=SYMS %s
|
||||
|
||||
; RUN: not --crash llc -mtriple powerpc64-ibm-aix-xcoff -filetype=obj < %s 2>&1 | \
|
||||
; RUN: not --crash llc -mtriple powerpc64-ibm-aix-xcoff -data-sections=false -filetype=obj < %s 2>&1 | \
|
||||
; RUN: FileCheck --check-prefix=XCOFF64 %s
|
||||
; XCOFF64: LLVM ERROR: 64-bit XCOFF object files are not supported yet.
|
||||
|
||||
|
@ -1,11 +1,14 @@
|
||||
; RUN: llc -verify-machineinstrs -mcpu=pwr4 -mtriple powerpc-ibm-aix-xcoff < %s | FileCheck --check-prefixes=CHECK,ASM32 %s
|
||||
; RUN: llc -verify-machineinstrs -mcpu=pwr4 -mtriple powerpc64-ibm-aix-xcoff < %s | FileCheck --check-prefixes=CHECK,ASM64 %s
|
||||
; RUN: llc -verify-machineinstrs -mcpu=pwr4 -mtriple powerpc-ibm-aix-xcoff -data-sections=false < %s | \
|
||||
; RUN: FileCheck --check-prefixes=CHECK,ASM32 %s
|
||||
; RUN: llc -verify-machineinstrs -mcpu=pwr4 -mtriple powerpc64-ibm-aix-xcoff -data-sections=false < %s | \
|
||||
; RUN: FileCheck --check-prefixes=CHECK,ASM64 %s
|
||||
|
||||
; RUN: llc -verify-machineinstrs -mcpu=pwr4 -mtriple powerpc-ibm-aix-xcoff -filetype=obj -o %t.o < %s
|
||||
; RUN: llc -verify-machineinstrs -mcpu=pwr4 -mtriple powerpc-ibm-aix-xcoff -data-sections=false -filetype=obj -o %t.o < %s
|
||||
; RUN: llvm-readobj -r --expand-relocs -t %t.o | FileCheck --check-prefixes=RELOC,SYM %s
|
||||
|
||||
; RUN: not --crash llc -verify-machineinstrs -mcpu=pwr4 -mtriple powerpc64-ibm-aix-xcoff -filetype=obj < %s 2>&1 | \
|
||||
; RUN: FileCheck --check-prefix=XCOFF64 %s
|
||||
; RUN: not --crash llc -verify-machineinstrs -mcpu=pwr4 -mtriple powerpc64-ibm-aix-xcoff \
|
||||
; RUN: -data-sections=false -filetype=obj < %s 2>&1 | \
|
||||
; RUN: FileCheck --check-prefix=XCOFF64 %s
|
||||
; XCOFF64: LLVM ERROR: 64-bit XCOFF object files are not supported yet.
|
||||
|
||||
@common = common global i32 0, align 4
|
||||
|
@ -1,8 +1,10 @@
|
||||
; This file tests the codegen of mergeable const in AIX assembly.
|
||||
; This file also tests mergeable const in XCOFF object file generation.
|
||||
; RUN: llc -verify-machineinstrs -mcpu=pwr4 -mtriple powerpc-ibm-aix-xcoff < %s | FileCheck --check-prefixes=CHECK,CHECK32 %s
|
||||
; RUN: llc -verify-machineinstrs -mcpu=pwr4 -mtriple powerpc64-ibm-aix-xcoff < %s | FileCheck --check-prefixes=CHECK,CHECK64 %s
|
||||
; RUN: llc -verify-machineinstrs -mcpu=pwr4 -mtriple powerpc-ibm-aix-xcoff -filetype=obj -o %t.o < %s
|
||||
; RUN: llc -verify-machineinstrs -mcpu=pwr4 -mtriple powerpc-ibm-aix-xcoff -data-sections=false < %s | \
|
||||
; RUN: FileCheck --check-prefixes=CHECK,CHECK32 %s
|
||||
; RUN: llc -verify-machineinstrs -mcpu=pwr4 -mtriple powerpc64-ibm-aix-xcoff -data-sections=false < %s | \
|
||||
; RUN: FileCheck --check-prefixes=CHECK,CHECK64 %s
|
||||
; RUN: llc -verify-machineinstrs -mcpu=pwr4 -mtriple powerpc-ibm-aix-xcoff -data-sections=false -filetype=obj -o %t.o < %s
|
||||
; RUN: llvm-objdump -D %t.o | FileCheck --check-prefix=CHECKOBJ %s
|
||||
; RUN: llvm-readobj -syms %t.o | FileCheck --check-prefix=CHECKSYM %s
|
||||
|
||||
|
@ -4,11 +4,11 @@
|
||||
; tests for XCOFF object files.
|
||||
|
||||
; RUN: llc -verify-machineinstrs -mcpu=pwr4 \
|
||||
; RUN: -mtriple powerpc-ibm-aix-xcoff < %s | FileCheck %s
|
||||
; RUN: -mtriple powerpc-ibm-aix-xcoff -data-sections=false < %s | FileCheck %s
|
||||
; RUN: llc -verify-machineinstrs -mcpu=pwr4 \
|
||||
; RUN: -mtriple powerpc64-ibm-aix-xcoff < %s | FileCheck %s
|
||||
; RUN: -mtriple powerpc64-ibm-aix-xcoff -data-sections=false < %s | FileCheck %s
|
||||
|
||||
; RUN: llc -verify-machineinstrs -mcpu=pwr4 -mtriple powerpc-ibm-aix-xcoff -filetype=obj -o %t.o < %s
|
||||
; RUN: llc -verify-machineinstrs -mcpu=pwr4 -mtriple powerpc-ibm-aix-xcoff -data-sections=false -filetype=obj -o %t.o < %s
|
||||
; RUN: llvm-objdump -D %t.o | FileCheck --check-prefix=CHECKOBJ %s
|
||||
|
||||
@magic16 = private unnamed_addr constant [4 x i16] [i16 264, i16 272, i16 213, i16 0], align 2
|
||||
|
@ -1,4 +1,4 @@
|
||||
; RUN: llc -verify-machineinstrs -mcpu=pwr4 -mtriple powerpc-ibm-aix-xcoff -mattr=-altivec -filetype=obj -o %t.o < %s
|
||||
; RUN: llc -verify-machineinstrs -mcpu=pwr4 -mtriple powerpc-ibm-aix-xcoff -mattr=-altivec -data-sections=false -filetype=obj -o %t.o < %s
|
||||
; RUN: llvm-readobj --section-headers --file-header %t.o | \
|
||||
; RUN: FileCheck --check-prefix=OBJ %s
|
||||
; RUN: llvm-readobj --relocs --expand-relocs %t.o | FileCheck --check-prefix=RELOC %s
|
||||
@ -6,7 +6,7 @@
|
||||
; RUN: llvm-objdump -D %t.o | FileCheck --check-prefix=DIS %s
|
||||
; RUN: llvm-objdump -r %t.o | FileCheck --check-prefix=DIS_REL %s
|
||||
|
||||
; RUN: not --crash llc -verify-machineinstrs -mcpu=pwr4 -mtriple powerpc64-ibm-aix-xcoff -mattr=-altivec -filetype=obj < %s 2>&1 | \
|
||||
; RUN: not --crash llc -verify-machineinstrs -mcpu=pwr4 -mtriple powerpc64-ibm-aix-xcoff -mattr=-altivec -data-sections=false -filetype=obj < %s 2>&1 | \
|
||||
; RUN: FileCheck --check-prefix=XCOFF64 %s
|
||||
; XCOFF64: LLVM ERROR: 64-bit XCOFF object files are not supported yet.
|
||||
|
||||
|
@ -1,13 +1,15 @@
|
||||
; RUN: llc -verify-machineinstrs -mcpu=pwr7 -mtriple powerpc-ibm-aix-xcoff < %s | FileCheck --check-prefixes=CHECK,CHECK32 %s
|
||||
; RUN: llc -verify-machineinstrs -mcpu=pwr7 -mtriple powerpc64-ibm-aix-xcoff < %s | FileCheck --check-prefixes=CHECK,CHECK64 %s
|
||||
; RUN: llc -verify-machineinstrs -mcpu=pwr7 -mtriple powerpc-ibm-aix-xcoff -data-sections=false < %s | \
|
||||
; RUN: FileCheck --check-prefixes=CHECK,CHECK32 %s
|
||||
; RUN: llc -verify-machineinstrs -mcpu=pwr7 -mtriple powerpc64-ibm-aix-xcoff -data-sections=false < %s | \
|
||||
; RUN: FileCheck --check-prefixes=CHECK,CHECK64 %s
|
||||
|
||||
; RUN: llc -verify-machineinstrs -mcpu=pwr7 -mtriple powerpc-ibm-aix-xcoff -filetype=obj -o %t.o < %s
|
||||
; RUN: llc -verify-machineinstrs -mcpu=pwr7 -mtriple powerpc-ibm-aix-xcoff -data-sections=false -filetype=obj -o %t.o < %s
|
||||
; RUN: llvm-readobj --section-headers --file-header %t.o | \
|
||||
; RUN: FileCheck --check-prefix=OBJ %s
|
||||
; RUN: llvm-readobj --syms %t.o | FileCheck --check-prefix=SYMS %s
|
||||
; RUN: llvm-objdump -D %t.o | FileCheck --check-prefix=DIS %s
|
||||
|
||||
; RUN: not --crash llc -verify-machineinstrs -mcpu=pwr7 -mtriple powerpc64-ibm-aix-xcoff -filetype=obj < %s 2>&1 | \
|
||||
; RUN: not --crash llc -verify-machineinstrs -mcpu=pwr7 -mtriple powerpc64-ibm-aix-xcoff -data-sections=false -filetype=obj < %s 2>&1 | \
|
||||
; RUN: FileCheck --check-prefix=XCOFF64 %s
|
||||
; XCOFF64: LLVM ERROR: 64-bit XCOFF object files are not supported yet.
|
||||
|
||||
|
@ -4,11 +4,11 @@
|
||||
;; tests for 64-bit mode are omitted.
|
||||
|
||||
; RUN: llc -verify-machineinstrs -mtriple powerpc-ibm-aix-xcoff -mcpu=pwr4 \
|
||||
; RUN: -mattr=-altivec < %s | \
|
||||
; RUN: -mattr=-altivec -data-sections=false < %s | \
|
||||
; RUN: FileCheck --check-prefix=ASM %s
|
||||
|
||||
; RUN: llc -verify-machineinstrs -mtriple powerpc-ibm-aix-xcoff -mcpu=pwr4 \
|
||||
; RUN: -mattr=-altivec -filetype=obj -o %t.o < %s
|
||||
; RUN: -mattr=-altivec -data-sections=false -filetype=obj -o %t.o < %s
|
||||
; RUN: llvm-objdump -D -r --symbol-description %t.o | \
|
||||
; RUN: FileCheck --check-prefix=OBJ %s
|
||||
|
||||
|
@ -1,10 +1,10 @@
|
||||
;; This test verifies llc on AIX would not crash when llvm.used and
|
||||
;; llvm.compiler.used is presented in the IR.
|
||||
|
||||
; RUN: llc -verify-machineinstrs -mcpu=pwr4 -mtriple powerpc-ibm-aix-xcoff < %s | \
|
||||
; RUN: llc -verify-machineinstrs -mcpu=pwr4 -mtriple powerpc-ibm-aix-xcoff -data-sections=false < %s | \
|
||||
; RUN: FileCheck %s
|
||||
|
||||
; RUN: llc -verify-machineinstrs -mcpu=pwr4 -mtriple powerpc64-ibm-aix-xcoff < %s | \
|
||||
; RUN: llc -verify-machineinstrs -mcpu=pwr4 -mtriple powerpc64-ibm-aix-xcoff -data-sections=false < %s | \
|
||||
; RUN: FileCheck %s
|
||||
|
||||
@keep_this = internal global i32 2, align 4
|
||||
|
@ -1,6 +1,6 @@
|
||||
; RUN: llc -verify-machineinstrs -mtriple powerpc-ibm-aix-xcoff -mcpu=pwr4 -mattr=-altivec < %s | \
|
||||
; RUN: llc -verify-machineinstrs -mtriple powerpc-ibm-aix-xcoff -mcpu=pwr4 -mattr=-altivec -data-sections=false < %s | \
|
||||
; RUN: FileCheck %s
|
||||
; RUN: llc -verify-machineinstrs -mtriple powerpc64-ibm-aix-xcoff -mcpu=pwr4 -mattr=-altivec < %s |\
|
||||
; RUN: llc -verify-machineinstrs -mtriple powerpc64-ibm-aix-xcoff -mcpu=pwr4 -mattr=-altivec -data-sections=false < %s |\
|
||||
; RUN: FileCheck %s
|
||||
|
||||
@b = global i32 0, align 4
|
||||
|
@ -852,7 +852,7 @@ static std::unique_ptr<LTO> createLTO(IndexWriteCallback OnIndexWrite,
|
||||
ThinBackend Backend;
|
||||
|
||||
Conf.CPU = options::mcpu;
|
||||
Conf.Options = codegen::InitTargetOptionsFromCodeGenFlags();
|
||||
Conf.Options = codegen::InitTargetOptionsFromCodeGenFlags(Triple());
|
||||
|
||||
// Disable the new X86 relax relocations since gold might not support them.
|
||||
// FIXME: Check the gold version or add a new option to enable them.
|
||||
|
@ -426,7 +426,7 @@ static int compileModule(char **argv, LLVMContext &Context) {
|
||||
|
||||
TargetOptions Options;
|
||||
auto InitializeOptions = [&](const Triple &TheTriple) {
|
||||
Options = codegen::InitTargetOptionsFromCodeGenFlags();
|
||||
Options = codegen::InitTargetOptionsFromCodeGenFlags(TheTriple);
|
||||
Options.DisableIntegratedAS = NoIntegratedAssembler;
|
||||
Options.MCOptions.ShowMCEncoding = ShowMCEncoding;
|
||||
Options.MCOptions.MCUseDwarfDirectory = EnableDwarfDirectory;
|
||||
|
@ -476,7 +476,8 @@ int main(int argc, char **argv, char * const *envp) {
|
||||
|
||||
builder.setOptLevel(getOptLevel());
|
||||
|
||||
TargetOptions Options = codegen::InitTargetOptionsFromCodeGenFlags();
|
||||
TargetOptions Options =
|
||||
codegen::InitTargetOptionsFromCodeGenFlags(Triple(TargetTriple));
|
||||
if (codegen::getFloatABIForCalls() != FloatABI::Default)
|
||||
Options.FloatABIType = codegen::getFloatABIForCalls();
|
||||
|
||||
|
@ -158,7 +158,7 @@ extern "C" LLVM_ATTRIBUTE_USED int LLVMFuzzerInitialize(int *argc,
|
||||
case '3': OLvl = CodeGenOpt::Aggressive; break;
|
||||
}
|
||||
|
||||
TargetOptions Options = codegen::InitTargetOptionsFromCodeGenFlags();
|
||||
TargetOptions Options = codegen::InitTargetOptionsFromCodeGenFlags(TheTriple);
|
||||
TM.reset(TheTarget->createTargetMachine(
|
||||
TheTriple.getTriple(), CPUStr, FeaturesStr, Options,
|
||||
codegen::getExplicitRelocModel(), codegen::getExplicitCodeModel(), OLvl));
|
||||
|
@ -418,7 +418,7 @@ static void printMachOCPUOnly() {
|
||||
LLVMContext Context;
|
||||
Context.setDiagnosticHandler(std::make_unique<LLVMLTODiagnosticHandler>(),
|
||||
true);
|
||||
TargetOptions Options = codegen::InitTargetOptionsFromCodeGenFlags();
|
||||
TargetOptions Options = codegen::InitTargetOptionsFromCodeGenFlags(Triple());
|
||||
for (auto &Filename : InputFilenames) {
|
||||
ErrorOr<std::unique_ptr<LTOModule>> ModuleOrErr =
|
||||
LTOModule::createFromFile(Context, Filename, Options);
|
||||
@ -907,7 +907,7 @@ int main(int argc, char **argv) {
|
||||
InitializeAllAsmParsers();
|
||||
|
||||
// set up the TargetOptions for the machine
|
||||
TargetOptions Options = codegen::InitTargetOptionsFromCodeGenFlags();
|
||||
TargetOptions Options = codegen::InitTargetOptionsFromCodeGenFlags(Triple());
|
||||
|
||||
if (ListSymbolsOnly) {
|
||||
listSymbols(Options);
|
||||
|
@ -230,7 +230,7 @@ static int run(int argc, char **argv) {
|
||||
};
|
||||
|
||||
Conf.CPU = codegen::getMCPU();
|
||||
Conf.Options = codegen::InitTargetOptionsFromCodeGenFlags();
|
||||
Conf.Options = codegen::InitTargetOptionsFromCodeGenFlags(Triple());
|
||||
Conf.MAttrs = codegen::getMAttrs();
|
||||
if (auto RM = codegen::getExplicitRelocModel())
|
||||
Conf.RelocModel = RM.getValue();
|
||||
|
@ -224,7 +224,8 @@ extern "C" LLVM_ATTRIBUTE_USED int LLVMFuzzerInitialize(
|
||||
exit(1);
|
||||
}
|
||||
|
||||
TargetOptions Options = codegen::InitTargetOptionsFromCodeGenFlags();
|
||||
TargetOptions Options =
|
||||
codegen::InitTargetOptionsFromCodeGenFlags(TargetTriple);
|
||||
TM.reset(TheTarget->createTargetMachine(
|
||||
TargetTriple.getTriple(), codegen::getCPUStr(), codegen::getFeaturesStr(),
|
||||
Options, codegen::getExplicitRelocModel(),
|
||||
|
@ -218,7 +218,8 @@ lto_module_is_object_file_in_memory_for_target(const void* mem,
|
||||
|
||||
lto_module_t lto_module_create(const char* path) {
|
||||
lto_initialize();
|
||||
llvm::TargetOptions Options = codegen::InitTargetOptionsFromCodeGenFlags();
|
||||
llvm::TargetOptions Options =
|
||||
codegen::InitTargetOptionsFromCodeGenFlags(Triple());
|
||||
ErrorOr<std::unique_ptr<LTOModule>> M =
|
||||
LTOModule::createFromFile(*LTOContext, StringRef(path), Options);
|
||||
if (!M)
|
||||
@ -228,7 +229,8 @@ lto_module_t lto_module_create(const char* path) {
|
||||
|
||||
lto_module_t lto_module_create_from_fd(int fd, const char *path, size_t size) {
|
||||
lto_initialize();
|
||||
llvm::TargetOptions Options = codegen::InitTargetOptionsFromCodeGenFlags();
|
||||
llvm::TargetOptions Options =
|
||||
codegen::InitTargetOptionsFromCodeGenFlags(Triple());
|
||||
ErrorOr<std::unique_ptr<LTOModule>> M = LTOModule::createFromOpenFile(
|
||||
*LTOContext, fd, StringRef(path), size, Options);
|
||||
if (!M)
|
||||
@ -241,7 +243,8 @@ lto_module_t lto_module_create_from_fd_at_offset(int fd, const char *path,
|
||||
size_t map_size,
|
||||
off_t offset) {
|
||||
lto_initialize();
|
||||
llvm::TargetOptions Options = codegen::InitTargetOptionsFromCodeGenFlags();
|
||||
llvm::TargetOptions Options =
|
||||
codegen::InitTargetOptionsFromCodeGenFlags(Triple());
|
||||
ErrorOr<std::unique_ptr<LTOModule>> M = LTOModule::createFromOpenFileSlice(
|
||||
*LTOContext, fd, StringRef(path), map_size, offset, Options);
|
||||
if (!M)
|
||||
@ -251,7 +254,8 @@ lto_module_t lto_module_create_from_fd_at_offset(int fd, const char *path,
|
||||
|
||||
lto_module_t lto_module_create_from_memory(const void* mem, size_t length) {
|
||||
lto_initialize();
|
||||
llvm::TargetOptions Options = codegen::InitTargetOptionsFromCodeGenFlags();
|
||||
llvm::TargetOptions Options =
|
||||
codegen::InitTargetOptionsFromCodeGenFlags(Triple());
|
||||
ErrorOr<std::unique_ptr<LTOModule>> M =
|
||||
LTOModule::createFromBuffer(*LTOContext, mem, length, Options);
|
||||
if (!M)
|
||||
@ -263,7 +267,8 @@ lto_module_t lto_module_create_from_memory_with_path(const void* mem,
|
||||
size_t length,
|
||||
const char *path) {
|
||||
lto_initialize();
|
||||
llvm::TargetOptions Options = codegen::InitTargetOptionsFromCodeGenFlags();
|
||||
llvm::TargetOptions Options =
|
||||
codegen::InitTargetOptionsFromCodeGenFlags(Triple());
|
||||
ErrorOr<std::unique_ptr<LTOModule>> M = LTOModule::createFromBuffer(
|
||||
*LTOContext, mem, length, Options, StringRef(path));
|
||||
if (!M)
|
||||
@ -274,7 +279,8 @@ lto_module_t lto_module_create_from_memory_with_path(const void* mem,
|
||||
lto_module_t lto_module_create_in_local_context(const void *mem, size_t length,
|
||||
const char *path) {
|
||||
lto_initialize();
|
||||
llvm::TargetOptions Options = codegen::InitTargetOptionsFromCodeGenFlags();
|
||||
llvm::TargetOptions Options =
|
||||
codegen::InitTargetOptionsFromCodeGenFlags(Triple());
|
||||
|
||||
// Create a local context. Ownership will be transferred to LTOModule.
|
||||
std::unique_ptr<LLVMContext> Context = std::make_unique<LLVMContext>();
|
||||
@ -293,7 +299,8 @@ lto_module_t lto_module_create_in_codegen_context(const void *mem,
|
||||
const char *path,
|
||||
lto_code_gen_t cg) {
|
||||
lto_initialize();
|
||||
llvm::TargetOptions Options = codegen::InitTargetOptionsFromCodeGenFlags();
|
||||
llvm::TargetOptions Options =
|
||||
codegen::InitTargetOptionsFromCodeGenFlags(Triple());
|
||||
ErrorOr<std::unique_ptr<LTOModule>> M = LTOModule::createFromBuffer(
|
||||
unwrap(cg)->getContext(), mem, length, Options, StringRef(path));
|
||||
return wrap(M->release());
|
||||
@ -356,7 +363,7 @@ void lto_codegen_set_diagnostic_handler(lto_code_gen_t cg,
|
||||
static lto_code_gen_t createCodeGen(bool InLocalContext) {
|
||||
lto_initialize();
|
||||
|
||||
TargetOptions Options = codegen::InitTargetOptionsFromCodeGenFlags();
|
||||
TargetOptions Options = codegen::InitTargetOptionsFromCodeGenFlags(Triple());
|
||||
|
||||
LibLTOCodeGenerator *CodeGen =
|
||||
InLocalContext ? new LibLTOCodeGenerator(std::make_unique<LLVMContext>())
|
||||
@ -507,7 +514,8 @@ void lto_codegen_set_should_embed_uselists(lto_code_gen_t cg,
|
||||
thinlto_code_gen_t thinlto_create_codegen(void) {
|
||||
lto_initialize();
|
||||
ThinLTOCodeGenerator *CodeGen = new ThinLTOCodeGenerator();
|
||||
CodeGen->setTargetOptions(codegen::InitTargetOptionsFromCodeGenFlags());
|
||||
CodeGen->setTargetOptions(
|
||||
codegen::InitTargetOptionsFromCodeGenFlags(Triple()));
|
||||
CodeGen->setFreestanding(EnableFreestanding);
|
||||
|
||||
if (OptLevel.getNumOccurrences()) {
|
||||
|
@ -698,7 +698,8 @@ int main(int argc, char **argv) {
|
||||
Triple ModuleTriple(M->getTargetTriple());
|
||||
std::string CPUStr, FeaturesStr;
|
||||
TargetMachine *Machine = nullptr;
|
||||
const TargetOptions Options = codegen::InitTargetOptionsFromCodeGenFlags();
|
||||
const TargetOptions Options =
|
||||
codegen::InitTargetOptionsFromCodeGenFlags(ModuleTriple);
|
||||
|
||||
if (ModuleTriple.getArch()) {
|
||||
CPUStr = codegen::getCPUStr();
|
||||
|
Loading…
Reference in New Issue
Block a user