llvm-project/llvm/lib/Transforms/IPO
David Majnemer 522a91181a Don't remove side effecting instructions due to ConstantFoldInstruction
Just because we can constant fold the result of an instruction does not
imply that we can delete the instruction.  It may have side effects.

This fixes PR28655.

llvm-svn: 276389
2016-07-22 04:54:44 +00:00
..
ArgumentPromotion.cpp [ArgPromote] Use function_ref and for-range loops. 2016-07-09 10:36:36 +00:00
BarrierNoopPass.cpp Revert r240137 (Fixed/added namespace ending comments using clang-tidy. NFC) 2015-06-23 09:49:53 +00:00
CMakeLists.txt IR: New representation for CFI and virtual call optimization pass metadata. 2016-06-24 21:21:32 +00:00
ConstantMerge.cpp [PM] Remove support for omitting the AnalysisManager argument to new 2016-06-17 00:11:01 +00:00
CrossDSOCFI.cpp [PM] Port CrossDSOCFI to the new pass manager. 2016-07-09 03:25:35 +00:00
DeadArgumentElimination.cpp Apply clang-tidy's modernize-loop-convert to most of lib/Transforms. 2016-06-26 12:28:59 +00:00
ElimAvailExtern.cpp [PM] Remove support for omitting the AnalysisManager argument to new 2016-06-17 00:11:01 +00:00
ExtractGV.cpp Apply clang-tidy's modernize-loop-convert to most of lib/Transforms. 2016-06-26 12:28:59 +00:00
ForceFunctionAttrs.cpp [PM] Remove support for omitting the AnalysisManager argument to new 2016-06-17 00:11:01 +00:00
FunctionAttrs.cpp [FunctionAttrs] Correct the safety analysis for inference of 'returned' 2016-07-19 18:50:26 +00:00
FunctionImport.cpp [PM] Port FunctionImport Pass to new PM 2016-07-18 21:22:24 +00:00
GlobalDCE.cpp IR: Introduce Module::global_objects(). 2016-06-22 20:29:42 +00:00
GlobalOpt.cpp Don't remove side effecting instructions due to ConstantFoldInstruction 2016-07-22 04:54:44 +00:00
IPConstantPropagation.cpp Apply clang-tidy's modernize-loop-convert to most of lib/Transforms. 2016-06-26 12:28:59 +00:00
IPO.cpp [PM] Port FunctionImport Pass to new PM 2016-07-18 21:22:24 +00:00
InferFunctionAttrs.cpp [TLI] Unify LibFunc attribute inference. NFCI. 2016-04-27 19:04:40 +00:00
InlineAlways.cpp Use ProfileSummaryInfo in inline cost analysis. 2016-06-09 22:23:21 +00:00
InlineSimple.cpp Use ProfileSummaryInfo in inline cost analysis. 2016-06-09 22:23:21 +00:00
Inliner.cpp Use ProfileSummaryInfo in inline cost analysis. 2016-06-09 22:23:21 +00:00
Internalize.cpp PM: Port Internalize to the new pass manager 2016-04-26 20:15:52 +00:00
LLVMBuild.txt [PGO] Passmanagerbuilder change that enable IR level PGO instrumentation 2016-01-21 18:28:59 +00:00
LoopExtractor.cpp Apply clang-tidy's modernize-loop-convert to most of lib/Transforms. 2016-06-26 12:28:59 +00:00
LowerTypeTests.cpp [PM/IPO] Port LowerTypeTests to the new PassManager. 2016-07-11 18:10:06 +00:00
MergeFunctions.cpp Apply clang-tidy's modernize-loop-convert to most of lib/Transforms. 2016-06-26 12:28:59 +00:00
PartialInlining.cpp [PM] Port PartialInlining to the new PM 2016-06-27 16:50:18 +00:00
PassManagerBuilder.cpp Make help text more consistent. NFC. 2016-07-20 23:14:29 +00:00
PruneEH.cpp [PM] Some preparatory refactoring to minimize the diff of D21921 2016-07-02 19:12:56 +00:00
SampleProfile.cpp Implement callsite-hotness based inline cost for Sample-based PGO 2016-07-11 16:48:54 +00:00
StripDeadPrototypes.cpp [PM] Remove support for omitting the AnalysisManager argument to new 2016-06-17 00:11:01 +00:00
StripSymbols.cpp Apply clang-tidy's modernize-loop-convert to most of lib/Transforms. 2016-06-26 12:28:59 +00:00
WholeProgramDevirt.cpp Print remarks from WholeProgramDevirt pass for each call site. 2016-07-12 02:38:37 +00:00