llvm/lib/Transforms/IPO
David Majnemer 54136ef7b3 [NVPTX] Infer __nvvm_reflect as nounwind, readnone
This patch simply mirrors the attributes we give to @llvm.nvvm.reflect
to the __nvvm_reflect libdevice call.  This shaves about 30% of the code
in libdevice away because of CSE opportunities.  It's also helps us
figure out that libdevice implementations of transcendental functions
don't have side-effects.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@265060 91177308-0d34-0410-b5e6-96231b3b80d8
2016-03-31 21:29:57 +00:00
..
ArgumentPromotion.cpp [AA] Hoist the logic to reformulate various AA queries in terms of other 2016-03-02 15:56:53 +00:00
BarrierNoopPass.cpp
CMakeLists.txt WholeProgramDevirt: introduce. 2016-02-09 22:50:34 +00:00
ConstantMerge.cpp
CrossDSOCFI.cpp [cfi] Cross-DSO CFI diagnostic mode (LLVM part). 2016-01-25 23:35:03 +00:00
DeadArgumentElimination.cpp Convert int to Twine instead of using utostr since it was already being added to a Twine. NFC 2016-01-31 00:15:35 +00:00
ElimAvailExtern.cpp
ExtractGV.cpp GlobalValue: use getValueType() instead of getType()->getPointerElementType(). 2016-01-16 20:30:46 +00:00
ForceFunctionAttrs.cpp Fix option desc in FunctionAttrs; NFC 2016-01-06 18:18:16 +00:00
FunctionAttrs.cpp [attrs] Handle convergent CallSites. 2016-03-14 20:18:54 +00:00
FunctionImport.cpp [ThinLTO] Use new GlobalValue::getGUID helper (NFC) 2016-03-29 14:49:26 +00:00
GlobalDCE.cpp Re-reapply "[IR] Move optional data in llvm::Function into a hungoff uselist" 2015-12-19 08:52:49 +00:00
GlobalOpt.cpp [GlobalOpt] Don't look through aliases when sorting names of globals. 2016-03-15 14:18:26 +00:00
InferFunctionAttrs.cpp [NVPTX] Infer __nvvm_reflect as nounwind, readnone 2016-03-31 21:29:57 +00:00
InlineAlways.cpp Refactor threshold computation for inline cost analysis 2016-01-14 23:16:29 +00:00
Inliner.cpp Revert revisions 262636, 262643, 262679, and 262682. 2016-03-08 00:36:35 +00:00
InlineSimple.cpp Make InlineSimple's one-arg constructor explicit. NFC 2016-03-29 16:26:06 +00:00
Internalize.cpp Use a StringSet in Internalize, and allow to create the pass from an existing one (NFC) 2016-02-10 23:24:31 +00:00
IPConstantPropagation.cpp
IPO.cpp [PM] Port the PostOrderFunctionAttrs pass to the new pass manager and 2016-02-18 11:03:11 +00:00
LLVMBuild.txt [PGO] Passmanagerbuilder change that enable IR level PGO instrumentation 2016-01-21 18:28:59 +00:00
LoopExtractor.cpp LoopInfo: Simplify ownership of Loop objects 2016-01-08 19:08:53 +00:00
LowerBitSets.cpp LowerBitSets: Don't bother to do any work if the llvm.bitset.test intrinsic is unused. 2016-02-03 03:48:46 +00:00
MergeFunctions.cpp Remove PreserveNames template parameter from IRBuilder 2016-03-13 21:05:13 +00:00
PartialInlining.cpp
PassManagerBuilder.cpp [PassManager] Make PassManagerBuilder::addExtension take an std::function, rather than a function pointer. 2016-03-30 20:39:29 +00:00
PruneEH.cpp [PruneEH] Don't try to insert a terminator after another terminator 2016-01-23 06:00:44 +00:00
SampleProfile.cpp Remove llvm::getDISubprogram in favor of Function::getSubprogram 2016-03-11 02:14:16 +00:00
StripDeadPrototypes.cpp
StripSymbols.cpp
WholeProgramDevirt.cpp Silencing warnings from MSVC 2015 Update 2. All of these changes silence "C4334 '<<': result of 32-bit shift implicitly converted to 64 bits (was 64-bit shift intended?)". NFC. 2016-03-30 21:30:00 +00:00