llvm-6502/lib
Jingyue Wu 5733100450 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

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@234567 91177308-0d34-0410-b5e6-96231b3b80d8
2015-04-10 05:03:50 +00:00
..
Analysis Divergence analysis for GPU programs 2015-04-10 05:03:50 +00:00
AsmParser DebugInfo: Move DIFlag-related API from DIDescriptor to DebugNode 2015-04-07 01:21:40 +00:00
Bitcode IR: Remove MDTupleTypedArrayWrapper::operator MDTuple*() 2015-04-07 16:50:39 +00:00
CodeGen [WinEHPrepare] Don't rely on the order of IR 2015-04-10 04:56:17 +00:00
DebugInfo Raising minimum required CMake version to 2.8.12.2. 2015-03-23 20:03:57 +00:00
ExecutionEngine [jitlistener] Remove unused code 2015-04-08 13:17:48 +00:00
Fuzzer Removing a spurious space; NFC. 2015-04-06 16:09:13 +00:00
IR IR: Preserve use-list order by default in bitcode 2015-04-09 17:41:20 +00:00
IRReader
LineEditor
Linker IR: Stop using DIDescriptor::is*() and auto-casting 2015-04-06 23:18:49 +00:00
LTO Simplify use of formatted_raw_ostream. 2015-04-09 21:06:08 +00:00
MC Simplify use of formatted_raw_ostream. 2015-04-09 21:06:08 +00:00
Object Remove more superfluous .str() and replace std::string concatenation with Twine. 2015-03-30 15:42:36 +00:00
Option Remove more superfluous .str() and replace std::string concatenation with Twine. 2015-03-30 15:42:36 +00:00
Passes [PM] Fixup for r231556 where I missed a dependency on intrinsics 2015-03-07 09:08:20 +00:00
ProfileData Re-sort includes with sort-includes.py and insert raw_ostream.h where it's used. 2015-03-23 19:32:43 +00:00
Support Misc cleanup. NFC. 2015-04-09 16:59:07 +00:00
TableGen Add missing includes. make_unique proliferated everywhere. 2015-03-01 21:28:53 +00:00
Target Divergence analysis for GPU programs 2015-04-10 05:03:50 +00:00
Transforms Eliminate O(n^2) worst-case behavior in SSA construction 2015-04-08 18:26:20 +00:00
CMakeLists.txt [PM] Create a separate library for high-level pass management code. 2015-03-07 09:02:36 +00:00
LLVMBuild.txt [PM] Create a separate library for high-level pass management code. 2015-03-07 09:02:36 +00:00
Makefile [PM] Create a separate library for high-level pass management code. 2015-03-07 09:02:36 +00:00