[PATCH] D124435: [X86] Always extend the integer parameters in callee
LiuChen via Phabricator via cfe-commits
cfe-commits at lists.llvm.org
Tue Apr 26 00:08:56 PDT 2022
LiuChen3 created this revision.
Herald added subscribers: dexonsmith, jdoerfert, pengfei.
Herald added a project: All.
LiuChen3 requested review of this revision.
Herald added subscribers: cfe-commits, MaskRay.
Herald added a project: clang.
For now clang will assume the integer parameters have been sign/zero
extended in the caller, which will cause some ABI compatibility issues.
This patch will remove the `signext/zeroext` from the callee so that the
callee will always extend the integer parameters:
1. Adds one new `ConservativeExtend` Kind, which means we shouldn't
make any assumptions about the caller and callee. In this case, we must
do zero/sign extension for integer parameters in caller and callee.
2. Adds `-mconservative-extend/-mno-conservative-extend` options. As
default `-mconservative-extend` is enabled. Use `-mno-conservative-extend`
to get back to the original behavior of clang.
Repository:
rG LLVM Github Monorepo
https://reviews.llvm.org/D124435
Files:
clang/docs/ClangCommandLineReference.rst
clang/include/clang/Basic/CodeGenOptions.def
clang/include/clang/CodeGen/CGFunctionInfo.h
clang/include/clang/Driver/Options.td
clang/lib/CodeGen/CGCall.cpp
clang/lib/CodeGen/TargetInfo.cpp
clang/lib/Driver/ToolChains/Clang.cpp
clang/test/CodeGen/2007-06-18-SextAttrAggregate.c
clang/test/CodeGen/X86/integer_argument_passing.c
clang/test/CodeGen/X86/x86_32-arguments-darwin.c
clang/test/CodeGen/X86/x86_32-arguments-linux.c
clang/test/CodeGen/X86/x86_64-arguments-nacl.c
clang/test/CodeGen/X86/x86_64-arguments.c
clang/test/CodeGen/attr-noundef.cpp
clang/test/CodeGen/builtin-align.c
clang/test/CodeGen/catch-implicit-integer-sign-changes.c
clang/test/CodeGen/ext-int-cc.c
clang/test/CodeGen/function-attributes.c
clang/test/CodeGen/mangle-windows.c
clang/test/CodeGen/matrix-type-builtins.c
clang/test/CodeGen/matrix-type-operators.c
clang/test/CodeGen/ms-inline-asm.c
clang/test/CodeGen/regcall.c
clang/test/CodeGen/vectorcall.c
clang/test/CodeGenCXX/exceptions.cpp
clang/test/CodeGenCXX/ext-int.cpp
clang/test/CodeGenCXX/microsoft-abi-eh-cleanups.cpp
clang/test/CodeGenCXX/new-overflow.cpp
clang/test/CodeGenCXX/virtual-bases.cpp
clang/test/CodeGenObjC/property-atomic-bool.m
clang/test/OpenMP/target_codegen_global_capture.cpp
-------------- next part --------------
A non-text attachment was scrubbed...
Name: D124435.425133.patch
Type: text/x-patch
Size: 42297 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/cfe-commits/attachments/20220426/daf1834a/attachment-0001.bin>
More information about the cfe-commits
mailing list