1
0
mirror of https://github.com/RPCS3/llvm-mirror.git synced 2024-10-24 13:33:37 +02:00
Go to file
Jingyue Wu a3bb69f6c6 Divergence analysis for GPU programs
Summary:
Some optimizations such as jump threading and loop unswitching can negatively
affect performance when applied to divergent branches. The divergence analysis
added in this patch conservatively estimates which branches in a GPU program
can diverge. This information can then help LLVM to run certain optimizations
selectively.

Test Plan: test/Analysis/DivergenceAnalysis/NVPTX/diverge.ll

Reviewers: resistor, hfinkel, eliben, meheff, jholewinski

Subscribers: broune, bjarke.roune, madhur13490, tstellarAMD, dberlin, echristo, jholewinski, llvm-commits

Differential Revision: http://reviews.llvm.org/D8576

llvm-svn: 234567
2015-04-10 05:03:50 +00:00
autoconf Try to unbreak Clang build to export LLVM_ABI_BREAKING_CHECKS, fixup for r233310. 2015-04-01 11:46:15 +00:00
bindings Go bindings: make various DIBuilder arguments optional. 2015-04-08 20:18:57 +00:00
cmake Disable all link optimizations in a debug build. 2015-04-06 15:04:31 +00:00
docs [lib/Fuzzer] show how to find Heartbleed with LibFuzzer 2015-04-08 06:16:11 +00:00
examples llvm/examples/BrainF: Give an explicit pointee type to ConstantExpr::getGetElementPtr(ty...), according to r233938. 2015-04-02 22:44:00 +00:00
include Divergence analysis for GPU programs 2015-04-10 05:03:50 +00:00
lib Divergence analysis for GPU programs 2015-04-10 05:03:50 +00:00
projects Reverse the order libc++ and libc++abi are added in CMake. 2015-03-04 01:16:43 +00:00
test Divergence analysis for GPU programs 2015-04-10 05:03:50 +00:00
tools Simplify use of formatted_raw_ostream. 2015-04-09 21:06:08 +00:00
unittests IR: Remove MDTupleTypedArrayWrapper::operator MDTuple*() 2015-04-07 16:50:39 +00:00
utils Use SmallVector instead of std::vector for uniquing X86 disassembler operand sets. The number of operands is a small fixed size. 2015-04-09 04:08:48 +00:00
.arcconfig
.clang-format
.clang-tidy Enable display of compiler diagnostics in clang-tidy by default. 2014-10-29 17:29:38 +00:00
.gitignore Ignore compile_commands.json only at the root of the tree. 2015-03-26 18:55:42 +00:00
CMakeLists.txt Enable W4 warnings by default for MSVC builds 2015-04-07 19:01:01 +00:00
CODE_OWNERS.TXT Tom is also responsible for the 3.6 branch. 2015-03-16 18:15:27 +00:00
configure Try to unbreak Clang build to export LLVM_ABI_BREAKING_CHECKS, fixup for r233310. 2015-04-01 11:46:15 +00:00
CREDITS.TXT
LICENSE.TXT Update for a new year. 2015-03-12 01:25:29 +00:00
llvm.spec.in
LLVMBuild.txt
Makefile
Makefile.common
Makefile.config.in Try to unbreak Clang build to export LLVM_ABI_BREAKING_CHECKS, fixup for r233310. 2015-04-01 11:46:15 +00:00
Makefile.rules Add support for SunOS function/data sections and associated 2015-03-03 20:54:29 +00:00
README.txt Revert test commit at revision 233535. 2015-03-30 12:39:03 +00:00

Low Level Virtual Machine (LLVM)
================================

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're writing a package for LLVM, see docs/Packaging.rst for our
suggestions.