aboutsummaryrefslogtreecommitdiff
path: root/clang/lib/Frontend/CompilerInvocation.cpp
diff options
context:
space:
mode:
authorItay Bookstein <itay.bookstein@nextsilicon.com>2021-10-08 09:55:55 +0800
committerWang, Pengfei <pengfei.wang@intel.com>2021-10-08 09:57:57 +0800
commitfaa0e2ae7644c332180cfe4e19daf378bc7a46a9 (patch)
treeb0b2ff8ebaaeb4f277b8ddf942e7c9ab6bda9417 /clang/lib/Frontend/CompilerInvocation.cpp
parentc236883b6ba791881256b31cfdb8a8520a821a67 (diff)
downloadllvm-faa0e2ae7644c332180cfe4e19daf378bc7a46a9.zip
llvm-faa0e2ae7644c332180cfe4e19daf378bc7a46a9.tar.gz
llvm-faa0e2ae7644c332180cfe4e19daf378bc7a46a9.tar.bz2
[SelectionDAG] Fix shift libcall ABI mismatch in shift-amount argument
The shift libcalls have a shift amount parameter of MVT::i32, but sometimes ExpandIntRes_Shift may be called with a node whose second operand is a type that is larger than that. This leads to an ABI mismatch, and for example causes a spurious zeroing of a register in RV32 for 64-bit shifts. Note that at present regular shift intstructions already have their shift amount operand adapted at SelectionDAGBuilder::visitShift time, and funnelled shifts bypass that. Reviewed By: craig.topper Differential Revision: https://reviews.llvm.org/D110508
Diffstat (limited to 'clang/lib/Frontend/CompilerInvocation.cpp')
0 files changed, 0 insertions, 0 deletions