llvm-project/llvm/lib/IR
Yuanfang Chen 555cf42f38 [NewPM][PassInstrument] Add PrintPass callback to StandardInstrumentations
Problem:
Right now, our "Running pass" is not accurate when passes are wrapped in adaptor because adaptor is never skipped and a pass could be skipped. The other problem is that "Running pass" for a adaptor is before any "Running pass" of passes/analyses it depends on. (for example, FunctionToLoopPassAdaptor). So the order of printing is not the actual order.

Solution:
Doing things like PassManager::Debuglogging is very intrusive because we need to specify Debuglogging whenever adaptor is created. (Actually, right now we're not specifying Debuglogging for some sub-PassManagers. Check PassBuilder)

This patch move debug logging for pass as a PassInstrument callback. We could be sure that all running passes are logged and in the correct order.

This could also be used to implement hierarchy pass logging in legacy PM. We could also move logging of pass manager to this if we want.

The test fixes looks messy. It includes changes:
- Remove PassInstrumentationAnalysis
- Remove PassAdaptor
- If a PassAdaptor is for a real pass, the pass is added
- Pass reorder (to the correct order), related to PassAdaptor
- Add missing passes (due to Debuglogging not passed down)

Reviewed By: asbirlea, aeubanks

Differential Revision: https://reviews.llvm.org/D84774
2020-07-30 10:07:57 -07:00
..
AbstractCallSite.cpp Remove getNumUses() comparisons (NFC) 2020-05-02 11:05:19 +02:00
AsmWriter.cpp [DebugInfo] Support for DW_AT_associated and DW_AT_allocated. 2020-07-20 19:54:35 +05:30
AttributeImpl.h IR: Define byref parameter attribute 2020-07-20 10:23:09 -04:00
Attributes.cpp IR: Define byref parameter attribute 2020-07-20 10:23:09 -04:00
AutoUpgrade.cpp Make helpers static. NFC. 2020-07-09 13:48:56 +02:00
BasicBlock.cpp Revert "[IR] Clean up dead instructions after simplifying a conditional branch" 2020-06-16 10:32:15 +01:00
CMakeLists.txt [NFC] Split Knowledge retention and place it more appropriatly 2020-04-02 15:01:41 +02:00
Comdat.cpp
ConstantFold.cpp Revert "[InstSimplify] Remove select ?, undef, X -> X and select ?, X, undef -> X transforms" and subsequent patches 2020-07-15 22:02:33 -07:00
ConstantFold.h Remove "mask" operand from shufflevector. 2020-03-31 13:08:59 -07:00
ConstantRange.cpp [ConstantRange] Add API for intrinsics (NFC) 2020-07-29 22:16:27 +02:00
Constants.cpp [SVE] Make Constant::getSplatValue work for scalable vector splats 2020-07-07 13:45:51 -07:00
ConstantsContext.h [IR] Add classof methods to ConstantExpr subclasses. 2020-07-01 11:56:12 -07:00
Core.cpp Remove GlobalValue::getAlignment(). 2020-06-23 19:13:42 -07:00
DIBuilder.cpp [DebugInfo] Upgrade DISubrange to support Fortran dynamic arrays 2020-05-28 13:46:41 +05:30
DataLayout.cpp [XCOFF][AIX] Use 'L..' instead of '.L' for getPrivateGlobalPrefix in DataLayout 2020-07-03 18:25:14 +00:00
DebugInfo.cpp Pass stripNonLineTableDebugInfo remapDebugLoc lambda DebugLoc arg by const reference not value. 2020-07-01 12:37:47 +01:00
DebugInfoMetadata.cpp [DebugInfo] Support for DW_AT_associated and DW_AT_allocated. 2020-07-20 19:54:35 +05:30
DebugLoc.cpp Pass DebugLoc::appendInlinedAt DebugLoc arg by const reference not value. 2020-07-01 16:38:51 +01:00
DiagnosticHandler.cpp
DiagnosticInfo.cpp [NFC] Remove trailing space 2020-02-18 10:49:13 +08:00
DiagnosticPrinter.cpp
Dominators.cpp Reapply "[DomTree] Replace ChildrenGetter with GraphTraits over GraphDiff." 2020-07-24 14:10:50 -07:00
FPEnv.cpp Fix some clang-tidy namespace closing comments warnings. NFC. 2020-06-26 09:58:21 +01:00
Function.cpp [InstCombine] Move target-specific inst combining 2020-07-22 15:59:49 +02:00
GVMaterializer.cpp
Globals.cpp Remove GlobalValue::getAlignment(). 2020-06-23 19:13:42 -07:00
IRBuilder.cpp Temporarily Revert "[AssumeBundles] Use operand bundles to encode alignment assumptions" 2020-07-16 11:54:04 -07:00
IRPrintingPasses.cpp IRPrintingPasses.h - simplify unnecessary header with forward declarations. NFC. 2020-07-27 14:51:28 +01:00
InlineAsm.cpp Make llvm::StringRef to std::string conversions explicit. 2020-01-28 23:25:25 +01:00
Instruction.cpp [Instruction] Remove setProfWeight() 2020-06-04 15:10:55 +07:00
Instructions.cpp [IR] Add a few asserts to provide a better failure signature if you try to create a load/store/alloca with no alignment or insertion position 2020-07-14 18:47:44 -07:00
IntrinsicInst.cpp [VP][Fix] canIgnoreVectorLength for scalable types 2020-06-04 14:17:42 +02:00
LLVMBuild.txt
LLVMContext.cpp Introduce a "gc-live" bundle for the gc arguments of a statepoint 2020-06-03 15:00:24 -07:00
LLVMContextImpl.cpp [IR][BFloat] Add BFloat IR type 2020-05-15 14:43:43 +01:00
LLVMContextImpl.h [DebugInfo] Support for DW_AT_associated and DW_AT_allocated. 2020-07-20 19:54:35 +05:30
LLVMRemarkStreamer.cpp Avoid including FileSystem.h from MemoryBuffer.h 2020-02-29 12:30:23 -08:00
LegacyPassManager.cpp [OldPM] Print out a bit more when passes lie about changing IR 2020-07-28 10:01:24 -06:00
MDBuilder.cpp [MDBuilder] Don't use stable sort for sorting integers. 2020-03-28 21:19:46 +01:00
Mangler.cpp IR: Rename Argument::hasPassPointeeByValueAttr to prepare for byref 2020-07-16 13:50:49 -04:00
Metadata.cpp [IR] Avoid linear scan in MDNode::intersect() (NFC) 2020-05-28 19:38:46 +02:00
MetadataImpl.h
Module.cpp [PGO] Improve the working set size heuristics under the partial sample PGO. 2020-06-01 10:29:23 -07:00
ModuleSummaryIndex.cpp Revert "[StackSafety,NFC] Remove unneded constexpr" 2020-07-01 08:41:45 -04:00
Operator.cpp Fix some clang-tidy namespace closing comments warnings. NFC. 2020-06-26 09:58:21 +01:00
OptBisect.cpp
Pass.cpp [Pass] Ensure we don't include PassSupport.h or PassAnalysisSupport.h directly 2020-04-26 12:58:20 +01:00
PassInstrumentation.cpp [NewPM][PassInstrument] Add PrintPass callback to StandardInstrumentations 2020-07-30 10:07:57 -07:00
PassManager.cpp Revert rG5dd566b7c7b78bd- "PassManager.h - remove unnecessary Function.h/Module.h includes. NFCI." 2020-07-24 13:02:33 +01:00
PassRegistry.cpp [Pass] Ensure we don't include PassSupport.h or PassAnalysisSupport.h directly 2020-04-26 12:58:20 +01:00
PassTimingInfo.cpp [NewPM][PassInstrument] Add PrintPass callback to StandardInstrumentations 2020-07-30 10:07:57 -07:00
ProfileSummary.cpp ProfileSummary.cpp - fix implicit Format.h dependency. NFC. 2020-06-23 09:43:40 +01:00
SafepointIRVerifier.cpp Fix some clang-tidy namespace closing comments warnings. NFC. 2020-06-26 09:58:21 +01:00
Statepoint.cpp [Statepoint] Start the process of removing old interfaces 2020-06-03 20:00:52 -07:00
SymbolTableListTraitsImpl.h [IR] Lazily number instructions for local dominance queries 2020-02-18 14:44:24 -08:00
Type.cpp [SVE] Reject vector struct indexes for scalable vectors. 2020-06-30 13:52:38 -07:00
TypeFinder.cpp [NFC] Fixes -Wrange-loop-analysis warnings 2020-01-01 20:01:37 +01:00
Use.cpp [IR] Simplify Use::swap. NFCI. 2020-07-21 12:15:12 +01:00
User.cpp [NFC] Edit the comment in User::replaceUsesOfWith 2020-07-29 10:02:04 +08:00
Value.cpp [SROA][Mem2Reg] Use efficient droppable use API (after D83976) 2020-07-28 17:41:01 -05:00
ValueSymbolTable.cpp NFC: Clean up the implementation of StringPool a bit, and remove dependence on some "implicitly MallocAllocator" based methods on StringMapEntry. This allows reducing the #includes in StringMapEntry.h. 2020-04-12 16:37:17 -07:00
Verifier.cpp Verifier: Check byref address space for AMDGPU calling conventions 2020-07-20 11:13:11 -04:00