summaryrefslogtreecommitdiffstats
path: root/llvm/lib/Analysis/TargetLibraryInfo.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'llvm/lib/Analysis/TargetLibraryInfo.cpp')
-rw-r--r--llvm/lib/Analysis/TargetLibraryInfo.cpp38
1 files changed, 19 insertions, 19 deletions
diff --git a/llvm/lib/Analysis/TargetLibraryInfo.cpp b/llvm/lib/Analysis/TargetLibraryInfo.cpp
index ae449f023a4..89470b87259 100644
--- a/llvm/lib/Analysis/TargetLibraryInfo.cpp
+++ b/llvm/lib/Analysis/TargetLibraryInfo.cpp
@@ -61,6 +61,25 @@ static void initialize(TargetLibraryInfoImpl &TLI, const Triple &T,
}) &&
"TargetLibraryInfoImpl function names must be sorted");
+ bool ShouldExtI32Param = false, ShouldExtI32Return = false,
+ ShouldSignExtI32Param = false;
+ // PowerPC64, Sparc64, SystemZ need signext/zeroext on i32 parameters and
+ // returns corresponding to C-level ints and unsigned ints.
+ if (T.getArch() == Triple::ppc64 || T.getArch() == Triple::ppc64le ||
+ T.getArch() == Triple::sparcv9 || T.getArch() == Triple::systemz) {
+ ShouldExtI32Param = true;
+ ShouldExtI32Return = true;
+ }
+ // Mips, on the other hand, needs signext on i32 parameters corresponding
+ // to both signed and unsigned ints.
+ if (T.getArch() == Triple::mips || T.getArch() == Triple::mipsel ||
+ T.getArch() == Triple::mips64 || T.getArch() == Triple::mips64el) {
+ ShouldSignExtI32Param = true;
+ }
+ TLI.setShouldExtI32Param(ShouldExtI32Param);
+ TLI.setShouldExtI32Return(ShouldExtI32Return);
+ TLI.setShouldSignExtI32Param(ShouldSignExtI32Param);
+
if (T.getArch() == Triple::r600 ||
T.getArch() == Triple::amdgcn) {
TLI.setUnavailable(LibFunc::ldexp);
@@ -414,25 +433,6 @@ static void initialize(TargetLibraryInfoImpl &TLI, const Triple &T,
}
TLI.addVectorizableFunctionsFromVecLib(ClVectorLibrary);
-
- bool ShouldExtI32Param = false, ShouldExtI32Return = false,
- ShouldSignExtI32Param = false;
- // PowerPC64, Sparc64, SystemZ need signext/zeroext on i32 parameters and
- // returns corresponding to C-level ints and unsigned ints.
- if (T.getArch() == Triple::ppc64 || T.getArch() == Triple::ppc64le ||
- T.getArch() == Triple::sparcv9 || T.getArch() == Triple::systemz) {
- ShouldExtI32Param = true;
- ShouldExtI32Return = true;
- }
- // Mips, on the other hand, needs signext on i32 parameters corresponding
- // to both signed and unsigned ints.
- if (T.getArch() == Triple::mips || T.getArch() == Triple::mipsel ||
- T.getArch() == Triple::mips64 || T.getArch() == Triple::mips64el) {
- ShouldSignExtI32Param = true;
- }
- TLI.setShouldExtI32Param(ShouldExtI32Param);
- TLI.setShouldExtI32Return(ShouldExtI32Return);
- TLI.setShouldSignExtI32Param(ShouldSignExtI32Param);
}
TargetLibraryInfoImpl::TargetLibraryInfoImpl() {
OpenPOWER on IntegriCloud