1
0
mirror of https://github.com/RPCS3/llvm-mirror.git synced 2024-11-23 11:13:28 +01:00
llvm-mirror/include/llvm/IR
Bangtian Liu a2ec1d8ec2 Ensure SplitEdge to return the new block between the two given blocks
This PR implements the function splitBasicBlockBefore to address an
issue
that occurred during SplitEdge(BB, Succ, ...), inside splitBlockBefore.
The issue occurs in SplitEdge when the Succ has a single predecessor
and the edge between the BB and Succ is not critical. This produces
the result ‘BB->Succ->New’. The new function splitBasicBlockBefore
was added to splitBlockBefore to handle the issue and now produces
the correct result ‘BB->New->Succ’.

Below is an example of splitting the block bb1 at its first instruction.

/// Original IR
bb0:
	br bb1
bb1:
        %0 = mul i32 1, 2
	br bb2
bb2:
/// IR after splitEdge(bb0, bb1) using splitBasicBlock
bb0:
	br bb1
bb1:
	br bb1.split
bb1.split:
        %0 = mul i32 1, 2
	br bb2
bb2:
/// IR after splitEdge(bb0, bb1) using splitBasicBlockBefore
bb0:
	br bb1.split
bb1.split
	br bb1
bb1:
        %0 = mul i32 1, 2
	br bb2
bb2:

Differential Revision: https://reviews.llvm.org/D92200
2020-12-17 16:00:15 +00:00
..
AbstractCallSite.h
Argument.h
AssemblyAnnotationWriter.h
Assumptions.h [Clang][Attr] Introduce the assume function attribute 2020-12-15 16:51:34 -06:00
Attributes.h Make LLVM build in C++20 mode 2020-12-17 10:44:10 +00:00
Attributes.td [Clang] Make nomerge attribute a function attribute as well as a statement attribute. 2020-12-17 07:45:38 -08:00
AutoUpgrade.h
BasicBlock.h Ensure SplitEdge to return the new block between the two given blocks 2020-12-17 16:00:15 +00:00
CallingConv.h
CFG.h
CMakeLists.txt
Comdat.h
Constant.h
ConstantFolder.h
ConstantRange.h
Constants.h Adding PoisonValue for representing poison value explicitly in IR 2020-11-25 17:33:51 -07:00
ConstrainedOps.def
DataLayout.h [IR, CodeGen] Use llvm::is_contained (NFC) 2020-12-16 21:30:44 -08:00
DebugInfo.h
DebugInfoFlags.def
DebugInfoMetadata.h [CSSPGO] Pseudo probes for function calls. 2020-12-02 13:45:20 -08:00
DebugLoc.h [IR] Delete deprecated DebugLoc::get 2020-12-15 14:53:12 -08:00
DerivedTypes.h [IR] Remove isPowerOf2ByteWidth 2020-12-14 23:00:17 -08:00
DerivedUser.h
DiagnosticHandler.h
DiagnosticInfo.h [Support] Introduce a new InstructionCost class 2020-12-11 08:12:54 +00:00
DiagnosticPrinter.h
DIBuilder.h
Dominators.h
FixedMetadataKinds.def Revert "clang-misexpect: Profile Guided Validation of Performance Annotations in LLVM" 2020-11-14 13:12:38 +03:00
FixedPointBuilder.h
FPEnv.h
Function.h [coroutine] should disable inline before calling coro split 2020-12-08 08:53:08 -08:00
GetElementPtrTypeIterator.h
GlobalAlias.h
GlobalIFunc.h
GlobalIndirectSymbol.h
GlobalObject.h
GlobalValue.h
GlobalVariable.h Add a default address space for globals to DataLayout 2020-11-20 15:46:52 +00:00
GVMaterializer.h
InlineAsm.h
InstIterator.h
InstrTypes.h [CallBase] Add hasRetAttr version that takes StringRef. 2020-12-10 17:00:16 +00:00
Instruction.def
Instruction.h [CSSPGO] IR intrinsic for pseudo-probe block instrumentation 2020-11-20 10:39:24 -08:00
Instructions.h [IR] Support scalable vectors in ShuffleVectorInst::increasesLength 2020-12-07 10:42:48 +00:00
InstVisitor.h
IntrinsicInst.h [CSSPGO] IR intrinsic for pseudo-probe block instrumentation 2020-11-20 10:39:24 -08:00
Intrinsics.h
Intrinsics.td [X86] AMX programming model. 2020-12-10 17:01:54 +08:00
IntrinsicsAArch64.td [AArch64] Add aarch64_neon_vcmla{_rot{90,180,270}} intrinsics. 2020-12-09 19:46:49 +00:00
IntrinsicsAMDGPU.td
IntrinsicsARM.td
IntrinsicsBPF.td BPF: make __builtin_btf_type_id() return 64bit int 2020-11-16 07:08:41 -08:00
IntrinsicsHexagon.td
IntrinsicsHexagonDep.td
IntrinsicsMips.td
IntrinsicsNVVM.td
IntrinsicsPowerPC.td [PowerPC] Implement intrinsic for DARN instruction 2020-12-08 14:08:52 +08:00
IntrinsicsRISCV.td [RISCV] Infer mask type from data type for vector vle and vse intrinsics. 2020-12-16 20:56:14 -08:00
IntrinsicsSystemZ.td
IntrinsicsVE.td
IntrinsicsVEVL.gen.td [VE] Add logical mask intrinsic instructions 2020-12-15 01:34:31 +09:00
IntrinsicsWebAssembly.td [WebAssembly] Rename atomic.notify and *.atomic.wait 2020-11-13 12:04:48 -08:00
IntrinsicsX86.td [X86] AMX programming model. 2020-12-10 17:01:54 +08:00
IntrinsicsXCore.td
IRBuilder.h [IRBuilder] Generalize debug loc handling for arbitrary metadata. 2020-12-17 13:27:43 +00:00
IRBuilderFolder.h
IRPrintingPasses.h [NewPM] Support --print-before/after in NPM 2020-12-03 16:52:14 -08:00
LegacyPassManager.h
LegacyPassManagers.h
LegacyPassNameParser.h
LLVMContext.h [Remarks][2/2] Expand remarks hotness threshold option support in more tools 2020-11-30 21:55:50 -08:00
LLVMRemarkStreamer.h [Remarks][1/2] Expand remarks hotness threshold option support in more tools 2020-11-30 21:55:49 -08:00
Mangler.h
MatrixBuilder.h
MDBuilder.h [CSSPGO] Pseudo probe encoding and emission. 2020-12-10 17:29:28 -08:00
Metadata.def
Metadata.h [Metadata] Fix layer violation in D91576 2020-12-03 10:58:46 -08:00
Module.h [Remarks][2/2] Expand remarks hotness threshold option support in more tools 2020-11-30 21:55:50 -08:00
ModuleSlotTracker.h
ModuleSummaryIndex.h
ModuleSummaryIndexYAML.h
NoFolder.h
OperandTraits.h
Operator.h
OptBisect.h
PassInstrumentation.h [NewPM] Support --print-before/after in NPM 2020-12-03 16:52:14 -08:00
PassManager.h [NewPM] Make pass adaptors less templatey 2020-12-04 08:30:50 -08:00
PassManagerImpl.h
PassManagerInternal.h
PassTimingInfo.h [Time-report] Add a flag -ftime-report={per-pass,per-pass-run} to control the pass timing aggregation 2020-12-08 10:13:19 -08:00
PatternMatch.h Adding PoisonValue for representing poison value explicitly in IR 2020-11-25 17:33:51 -07:00
PredIteratorCache.h [IR] Use llvm::is_contained and pred_size (NFC) 2020-11-26 22:02:04 -08:00
PrintPasses.h [NewPM] Support --print-before/after in NPM 2020-12-03 16:52:14 -08:00
ProfileSummary.h
PseudoProbe.h [CSSPGO] Consume pseudo-probe-based AutoFDO profile 2020-12-16 15:57:18 -08:00
RuntimeLibcalls.def [RISCV] Support Zfh half-precision floating-point extension. 2020-12-03 09:16:33 +08:00
SafepointIRVerifier.h
Statepoint.h
StructuralHash.h
SymbolTableListTraits.h
TrackingMDRef.h
Type.h
TypeFinder.h
Use.h
UseListOrder.h
User.h Avoid redundant inline with LLVM_ATTRIBUTE_ALWAYS_INLINE 2020-12-01 14:43:16 -08:00
Value.def Adding PoisonValue for representing poison value explicitly in IR 2020-11-25 17:33:51 -07:00
Value.h
ValueHandle.h
ValueMap.h
ValueSymbolTable.h
Verifier.h
VPIntrinsics.def [VP] Build VP SDNodes 2020-12-09 11:36:51 +01:00