llvm-project/llvm
Matt Arsenault 34d9a16e54 AMDGPU: Add option to expand 64-bit integer division in IR
I didn't realize we were already expanding 24/32-bit division here
already. Use the available IntegerDivision utilities. This uses loops,
so produces significantly smaller code than the inline DAG expansion.

This now requires width reductions of 64-bit divisions before
introducing the expanded loops.

This helps work around missing legalization in GlobalISel for
division, which are the only remaining core instructions that didn't
work at all.

I think this is plausibly a better implementation than exists in the
DAG, although turning it on by default misses out on the constant
value optimizations and also needs benchmarking.
2020-02-14 11:16:08 -08:00
..
benchmarks
bindings Rework go bindings so that validation works fine 2020-02-13 14:13:03 +01:00
cmake llvm/cmake/config.guess: add support for riscv32 and riscv64 2020-02-14 11:53:51 +00:00
docs [doc] Clarify responsibility for fixing experimental target problems 2020-02-14 09:50:18 +00:00
examples Fix compilation breakage introduced by 8404aeb56a. 2020-02-14 11:17:18 -05:00
include GlobalISel: Lower s64->s16 G_FPTRUNC 2020-02-14 10:46:58 -08:00
lib AMDGPU: Add option to expand 64-bit integer division in IR 2020-02-14 11:16:08 -08:00
projects
resources
runtimes [runtimes] Add umbrella targets for runtimes 2020-02-12 09:46:14 -08:00
test AMDGPU: Add option to expand 64-bit integer division in IR 2020-02-14 11:16:08 -08:00
tools [Support] On Windows, ensure hardware_concurrency() extends to all CPU sockets and all NUMA groups 2020-02-14 10:24:22 -05:00
unittests [APInt] Add some basic APInt::byteSwap unit tests 2020-02-14 18:15:13 +00:00
utils Fix line endings produced by update_cc_test_checks.py 2020-02-14 15:17:27 +00:00
.arcconfig
.clang-format
.clang-tidy - Update .clang-tidy to ignore parameters of main like functions for naming violations in clang and llvm directory 2020-01-31 16:49:45 +00:00
.gitattributes
.gitignore Continue removing llgo. 2020-02-10 10:33:58 -08:00
CMakeLists.txt Fix integration of pass plugins with llvm dylib 2020-02-13 14:18:08 +01:00
CODE_OWNERS.TXT Continue removing llgo. 2020-02-10 10:33:58 -08:00
CREDITS.TXT
LICENSE.TXT
LLVMBuild.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.