llvm-project/llvm/lib/IR
Hongtao Yu 098a0d8fbc [CSSPGO] Unblock optimizations with pseudo probe instrumentation part 3.
This patch continues unblocking optimizations that are blocked by pseudo probe instrumentation.

Not exactly like DbgIntrinsics, PseudoProbe intrinsic has other attributes (such as mayread, maywrite, mayhaveSideEffect) that can block optimizations. The issues fixed are:
- Flipped default param of getFirstNonPHIOrDbg API to skip pseudo probes
- Unblocked CSE by avoiding pseudo probe from clobbering memory SSA
- Unblocked induction variable simpliciation
- Allow empty loop deletion by treating probe intrinsic isDroppable
- Some refactoring.

Reviewed By: wenlei

Differential Revision: https://reviews.llvm.org/D110847
2021-10-12 09:44:12 -07:00
..
AbstractCallSite.cpp [IR] Migrate from getNumArgOperands to arg_size (NFC) 2021-10-04 08:40:25 -07:00
AsmWriter.cpp [IR] Migrate from getNumArgOperands to arg_size (NFC) 2021-10-04 08:40:25 -07:00
Assumptions.cpp [OpenMP] Check OpenMP assumptions on call-sites as well 2021-09-10 14:52:47 -04:00
AttributeImpl.h [Attributes] Use single method to fetch type from AttributeSet (NFC) 2021-07-14 21:10:56 +02:00
Attributes.cpp [AttrBuilder] Make handling of int attribtues more generifc (NFC) 2021-10-03 23:42:28 +02:00
AutoUpgrade.cpp [IR] Migrate from getNumArgOperands to arg_size (NFC) 2021-10-04 08:40:25 -07:00
BasicBlock.cpp Add a statistic to track number of times we rebuild instruction ordering 2021-10-08 10:59:34 -07:00
BuiltinGCs.cpp [GC][NFC] Move GCStrategy from CodeGen to IR 2021-05-13 12:31:59 +07:00
CMakeLists.txt [GC][NFC] Move GCStrategy from CodeGen to IR 2021-05-13 12:31:59 +07:00
Comdat.cpp [IR] Rename `comdat noduplicates` to `comdat nodeduplicate` 2021-07-20 12:47:10 -07:00
ConstantFold.cpp [APInt] Stop using soft-deprecated constructors and methods in llvm. NFC. 2021-10-04 08:57:44 +01:00
ConstantFold.h
ConstantRange.cpp [APInt] Stop using soft-deprecated constructors and methods in llvm. NFC. 2021-10-04 08:57:44 +01:00
Constants.cpp [Inline] Introduce Constant::hasOneLiveUse, use it instead of hasOneUse in inline cost model (PR51667) 2021-10-07 08:33:25 -07:00
ConstantsContext.h [IR] Added operator delete to subclasses of User to avoid UB 2021-07-08 11:59:22 +02:00
Core.cpp [IR] Migrate from getNumArgOperands to arg_size (NFC) 2021-10-04 08:40:25 -07:00
DIBuilder.cpp [IR] DIBuilder::createEnumerator - pass APSInt by const reference 2021-09-25 11:58:06 +01:00
DataLayout.cpp Reland [IR] Increase max alignment to 4GB 2021-10-06 13:29:23 -07:00
DebugInfo.cpp Expose `DIBuilder::finalizeSubprogram()` through the LLVM C API 2021-09-30 20:59:41 -07:00
DebugInfoMetadata.cpp [DebugInfo] Enhance DIImportedEntity to accept children entities 2021-09-16 10:41:55 +05:30
DebugLoc.cpp [IR] Delete unused ReplaceLast in DebugLoc::appendInlineAt 2021-01-08 23:28:22 -08:00
DiagnosticHandler.cpp [llvm] Replace report_fatal_error(std::string) uses with report_fatal_error(Twine) 2021-10-06 12:04:30 +01:00
DiagnosticInfo.cpp Reland [clang] Rework dontcall attributes 2021-09-28 15:31:30 -07:00
DiagnosticPrinter.cpp
Dominators.cpp [gvn] Precisely propagate equalities to phi operands 2021-03-08 08:59:00 -08:00
FPEnv.cpp [NFC] Rename functions to match our naming scheme. 2021-10-07 14:12:41 -04:00
Function.cpp Reland [IR] Increase max alignment to 4GB 2021-10-06 13:29:23 -07:00
GCStrategy.cpp [GC][NFC] Make getGCStrategy by name available in IR 2021-08-02 14:26:04 +07:00
GVMaterializer.cpp
Globals.cpp [IR][NFC] Rename getBaseObject to getAliaseeObject 2021-10-06 19:33:10 -07:00
IRBuilder.cpp [BPF] Use elementtype attribute for preserve.array/struct.index intrinsics 2021-07-17 11:09:18 +02:00
IRPrintingPasses.cpp
InlineAsm.cpp Support unwinding from inline assembly 2021-05-13 19:13:03 +01:00
Instruction.cpp [IR] Migrate from getNumArgOperands to arg_size (NFC) 2021-10-04 08:40:25 -07:00
Instructions.cpp [IR] Migrate from getNumArgOperands to arg_size (NFC) 2021-10-04 08:40:25 -07:00
IntrinsicInst.cpp [NFC] Rename functions to match our naming scheme. 2021-10-07 14:12:41 -04:00
LLVMContext.cpp [OpaquePtr] Forbid mixing typed and opaque pointers 2021-09-10 15:18:23 +02:00
LLVMContextImpl.cpp [OpaquePtr] Forbid mixing typed and opaque pointers 2021-09-10 15:18:23 +02:00
LLVMContextImpl.h [DebugInfo] Enhance DIImportedEntity to accept children entities 2021-09-16 10:41:55 +05:30
LLVMRemarkStreamer.cpp [SystemZ][z/OS][Windows] Add new OF_TextWithCRLF flag and use this flag instead of OF_Text 2021-04-06 07:23:31 -04:00
LegacyPassManager.cpp [llvm] Replace report_fatal_error(std::string) uses with report_fatal_error(Twine) 2021-10-06 12:04:30 +01:00
MDBuilder.cpp
Mangler.cpp [Mangler] Calculate the argument list byte count suffix correctly when returning large values 2021-09-29 11:42:28 -07:00
Metadata.cpp [IR] Re-group AAMDNodes relevant interfaces. NFC. 2021-09-21 14:29:33 -04:00
MetadataImpl.h
Module.cpp [PredicateInfo] Use Intrinsic::getDeclaration now that it handles unnamed types. 2021-07-28 19:30:29 +02:00
ModuleSummaryIndex.cpp [ThinLTO] Add noRecurse and noUnwind thinlink function attribute propagation 2021-09-27 12:28:07 -07:00
Operator.cpp Partial Reapply "[DebugInfo] Use variadic debug values to salvage BinOps and GEP instrs with non-const operands" 2021-06-24 09:46:38 +01:00
OptBisect.cpp Delay initialization of OptBisect 2021-08-05 09:04:17 -05:00
Pass.cpp [PM] Avoid duplicates in the Used/Preserved/Required sets 2021-01-20 13:55:18 +01:00
PassInstrumentation.cpp [NewPM] Handle passes with params in -print-before/-print-after 2021-07-09 09:27:37 +02:00
PassManager.cpp [NPM] Added opt option -print-pipeline-passes. 2021-09-02 08:23:33 +02:00
PassRegistry.cpp [Analysis, IR] Use *Map::lookup (NFC) 2020-12-29 19:23:24 -08:00
PassTimingInfo.cpp
PrintPasses.cpp
ProfileSummary.cpp
PseudoProbe.cpp [IR] Remove addPseudoProbeAttribute (NFC) 2021-08-26 09:02:26 -07:00
ReplaceConstant.cpp [IR] Simplify createReplacementInstr 2021-06-23 10:47:43 +01:00
SafepointIRVerifier.cpp [llvm] Use append_range (NFC) 2021-01-27 23:25:41 -08:00
Statepoint.cpp [NFC] One more AttributeList::getAttribute(FunctionIndex) -> getFnAttr() 2021-08-13 16:49:05 -07:00
StructuralHash.cpp
SymbolTableListTraitsImpl.h
Type.cpp [Type] Avoid APFloat.h include (NFC) 2021-10-09 11:29:26 +02:00
TypeFinder.cpp [IR] Make TypeFinder aware of DIArgList values 2021-05-28 17:09:45 +02:00
Use.cpp
User.cpp [CSSPGO] Unblock optimizations with pseudo probe instrumentation part 3. 2021-10-12 09:44:12 -07:00
Value.cpp [InstCombine] Improve TryToSinkInstruction with multiple uses 2021-09-21 10:04:04 -04:00
ValueSymbolTable.cpp PR51018: Remove explicit conversions from SmallString to StringRef to future-proof against C++23 2021-07-08 13:37:57 -07:00
Verifier.cpp [IR] Migrate from getNumArgOperands to arg_size (NFC) 2021-10-04 08:40:25 -07:00