aboutsummaryrefslogtreecommitdiff
path: root/clang/lib/Frontend/CompilerInvocation.cpp
diff options
context:
space:
mode:
authorMatt Arsenault <Matthew.Arsenault@amd.com>2025-07-15 08:30:49 +0900
committerGitHub <noreply@github.com>2025-07-15 08:30:49 +0900
commitd1db176e82fa02188471ca014582016b0b1ace7b (patch)
tree91527e20aec78847ac1f288880ee2f6650defbf9 /clang/lib/Frontend/CompilerInvocation.cpp
parent085e8f1e520b91f5ed40e5b09f458bb2c4d7c0e0 (diff)
downloadllvm-d1db176e82fa02188471ca014582016b0b1ace7b.zip
llvm-d1db176e82fa02188471ca014582016b0b1ace7b.tar.gz
llvm-d1db176e82fa02188471ca014582016b0b1ace7b.tar.bz2
ARM: Stop setting sincos_stret calling convention (#147457)
This was going out of its way to explicitly mark these as ARM_AAPCS_VFP. This has been explicitly set since 8b40366b54bd4, where the commit message states that "sincos" (not sincos_stret) has a special calling convention. However, that commit also sets the calling convention for all libcalls to ARM_AAPCS_VFP, and getEffectiveCallingConv returns the same for CCC anyway in tests using isWatchABI triples. The net result of this appears to be a change in behavior when using -float-abi=soft with isWatchABI, which have no tests so I assume this is a theoretical combination. If I assert ``` if (getTargetMachine().getTargetTriple().isWatchABI()) { assert(!useSoftFloat()); assert(getEffectiveCallingConv(CallingConv::C, false) == CallingConv::ARM_AAPCS_VFP); } ``` Only 2 tests fail the second condition, which look like copy paste accidents using v7k triples with linux and only needed a filler triple. This is a consequence of strangely using the target architecture in place of the OS ABI check, as was done in 042a6c1fe19caf48af7e287dc8f6fd5fec158093
Diffstat (limited to 'clang/lib/Frontend/CompilerInvocation.cpp')
0 files changed, 0 insertions, 0 deletions