llvm-6502/include/llvm
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
..
ADT
Analysis Divergence analysis for GPU programs 2015-04-10 05:03:50 +00:00
AsmParser
Bitcode
CodeGen Divergence analysis for GPU programs 2015-04-10 05:03:50 +00:00
Config
DebugInfo
ExecutionEngine
IR Add LLVM support for remaining integer divide and permute instructions from ISA 2.06 2015-04-09 23:54:37 +00:00
IRReader
LineEditor
Linker
LTO
MC Simplify use of formatted_raw_ostream. 2015-04-09 21:06:08 +00:00
Object
Option
Passes
ProfileData
Support Simplify use of formatted_raw_ostream. 2015-04-09 21:06:08 +00:00
TableGen
Target Simplify use of formatted_raw_ostream. 2015-04-09 21:06:08 +00:00
Transforms
CMakeLists.txt
InitializePasses.h Divergence analysis for GPU programs 2015-04-10 05:03:50 +00:00
LinkAllIR.h
LinkAllPasses.h Divergence analysis for GPU programs 2015-04-10 05:03:50 +00:00
module.modulemap
module.modulemap.build
Pass.h
PassAnalysisSupport.h
PassInfo.h
PassRegistry.h
PassSupport.h