llvm-project/llvm
Craig Topper 1bf4bbc492 [LegalizeTypes][RISCV][WebAssembly] Expand ABS in PromoteIntRes_ABS if it will expand to sra+xor+sub later.
If we promote the ABS and then Expand in LegalizeDAG, then both the
sra and the xor will have their inputs sign extended. This generates
extra code on RISCV which lacks an i8 or i16 sign extend instructon.
If we expand during type legalization, then only the sra will get its
input sign extended. RISCV is able to combine this with the sra by
doing a shift left followed by an sra.

Reviewed By: RKSimon

Differential Revision: https://reviews.llvm.org/D121664
2022-03-15 08:27:39 -07:00
..
benchmarks
bindings [NFC] Fix go binding build 2022-03-14 14:08:51 +08:00
cmake Add cmake_parse_arguments() to `tablegen()` CMake function 2022-03-14 06:56:11 +00:00
docs Revert rG9c542a5a4e1ba36c24e48185712779df52b7f7a6 "Lower `@llvm.global_dtors` using `__cxa_atexit` on MachO" 2022-03-15 13:01:35 +00:00
examples Cleanup includes: LLVMTarget 2022-03-10 10:00:29 +01:00
include Revert rG9c542a5a4e1ba36c24e48185712779df52b7f7a6 "Lower `@llvm.global_dtors` using `__cxa_atexit` on MachO" 2022-03-15 13:01:35 +00:00
lib [LegalizeTypes][RISCV][WebAssembly] Expand ABS in PromoteIntRes_ABS if it will expand to sra+xor+sub later. 2022-03-15 08:27:39 -07:00
projects
resources
runtimes [CMake] Rename TARGET_TRIPLE to LLVM_TARGET_TRIPLE 2022-03-11 15:43:01 -08:00
test [LegalizeTypes][RISCV][WebAssembly] Expand ABS in PromoteIntRes_ABS if it will expand to sra+xor+sub later. 2022-03-15 08:27:39 -07:00
tools Revert "Load pass plugins during option processing, so that plugin options are registered and live." 2022-03-15 13:02:37 +00:00
unittests [Support] Change zlib::compress to return void 2022-03-14 11:38:04 -07:00
utils [gn build] Port 7262eacd41 2022-03-15 13:08:09 +00:00
.clang-format
.clang-tidy
.gitattributes
.gitignore
CMakeLists.txt [CMake] Rename TARGET_TRIPLE to LLVM_TARGET_TRIPLE 2022-03-11 15:43:01 -08:00
CODE_OWNERS.TXT [VE] Transfer backend ownership 2022-03-14 09:18:40 +01:00
CREDITS.TXT [CODE_OWNERS/CREDITS] Update my email address 2022-03-07 10:53:29 +00:00
LICENSE.TXT
README.txt
RELEASE_TESTERS.TXT
configure
llvm.spec.in

README.txt

The LLVM Compiler Infrastructure
================================

This directory and its subdirectories contain source code for LLVM,
a toolkit for the construction of highly optimized compilers,
optimizers, and runtime environments.

LLVM is open source software. You may freely distribute it under the terms of
the license agreement found in LICENSE.txt.

Please see the documentation provided in docs/ for further
assistance with LLVM, and in particular docs/GettingStarted.rst for getting
started with LLVM and docs/README.txt for an overview of LLVM's
documentation setup.

If you are writing a package for LLVM, see docs/Packaging.rst for our
suggestions.