llvm-project/llvm/lib/Transforms/IPO
Fangrui Song 129f466e22 [GlobalOpt] Remove heap SROA
GlobalOpt implements a heap SROA (SROA for an malloc allocatated struct or array
of structs) which is largely undertested (heap-sra-[1234].ll are basically the
same test with very little difference) and does not trigger at all when
bootstrapping clang (it only supports the case of one single store).

The heap SROA implementation causes PR50027 (GEP is not properly handled; crash or miscompile).
Just drop the implementation. I have deleted some obviously duplicated tests
but kept `heap-sra-[12]{,-no-nullopt}.ll`.

Reviewed By: aeubanks

Differential Revision: https://reviews.llvm.org/D102257
2021-05-11 11:34:37 -07:00
..
AlwaysInliner.cpp [coroutine] should disable inline before calling coro split 2020-12-08 08:53:08 -08:00
Annotation2Metadata.cpp Add pass to add !annotate metadata from @llvm.global.annotations. 2020-11-16 14:57:11 +00:00
ArgumentPromotion.cpp [ArgumentPromotion] Fix byval alignment handling. 2021-05-11 11:22:18 -07:00
Attributor.cpp [ADT] Make TrackingStatistic's ctor constexpr 2021-04-28 12:00:17 +02:00
AttributorAttributes.cpp [NFC][ConstantRange] Add 'icmp' helper method 2021-04-10 19:38:55 +03:00
BarrierNoopPass.cpp
BlockExtractor.cpp Internalize some cl::opt global variables or move them under namespace llvm 2021-05-07 11:15:43 -07:00
CMakeLists.txt [IRSim][IROutliner] Adding the extraction basics for the IROutliner. 2020-12-17 11:27:26 -06:00
CalledValuePropagation.cpp
ConstantMerge.cpp [ConstantMerge] Don't merge thread_local constants with non-thread_local constants 2021-04-28 23:44:20 +01:00
CrossDSOCFI.cpp
DeadArgumentElimination.cpp [DAE] Adjust param/arg attributes when changing parameter to undef 2021-03-25 14:53:22 -07:00
ElimAvailExtern.cpp
ExtractGV.cpp [Transforms] Use range-based for loops (NFC) 2021-02-08 22:33:53 -08:00
ForceFunctionAttrs.cpp [IR] Add vscale_range IR function attribute 2021-03-22 12:05:06 +00:00
FunctionAttrs.cpp [NewPM] Only invalidate modified functions' analyses in CGSCC passes 2021-05-03 17:21:44 -07:00
FunctionImport.cpp [FunctionImport] Delete unneeded setLive. NFC 2021-03-06 14:09:54 -08:00
GlobalDCE.cpp
GlobalOpt.cpp [GlobalOpt] Remove heap SROA 2021-05-11 11:34:37 -07:00
GlobalSplit.cpp
HotColdSplitting.cpp [Transforms/IPO] Use range-based for loops (NFC) 2021-02-03 20:41:20 -08:00
IPO.cpp [OpenMP] Add OpenMPOpt as a Module pass 2021-04-20 12:28:58 -04:00
IROutliner.cpp IROutliner.cpp - fix Wdocumentation warning. NFCI. 2021-02-05 11:38:09 +00:00
InferFunctionAttrs.cpp [inferattrs] Don't infer lib func attributes for nobuiltin functions 2021-04-16 15:36:15 -07:00
InlineSimple.cpp
Inliner.cpp [NewPM] Hide pass manager debug logging behind -debug-pass-manager-verbose 2021-05-07 21:51:47 -07:00
Internalize.cpp collectUsedGlobalVariables: migrate SmallPtrSetImpl overload to SmallVecImpl overload after D97128 2021-02-23 16:09:06 -08:00
LoopExtractor.cpp [LoopExtract][NewPM] Port -loop-extract to NPM 2020-10-13 22:55:42 -07:00
LowerTypeTests.cpp Use AssumeInst in a few more places [nfc] 2021-04-06 13:18:53 -07:00
MergeFunctions.cpp [Transforms/IPO] Use range-based for loops (NFC) 2021-02-03 20:41:20 -08:00
OpenMPOpt.cpp [Attributor] Add AAExecutionDomainInfo interface to OpenMPOpt 2021-05-03 19:24:19 -04:00
PartialInlining.cpp NFC: Migrate PartialInlining to work on InstructionCost 2021-03-30 11:59:45 +01:00
PassManagerBuilder.cpp [PassManager] add helper function to hold set of vector passes (2nd try) 2021-05-10 14:43:00 -04:00
PruneEH.cpp [PruneEH][NFC] Use CallGraphUpdater in PruneEH 2020-09-14 14:43:19 -07:00
SCCP.cpp Add a missing file header comment, NFC. 2021-03-26 15:34:04 -07:00
SampleContextTracker.cpp [CSSPGO] Top-down processing order based on full profile. 2021-03-30 10:42:22 -07:00
SampleProfile.cpp [CSSPGO] Fix incorrect prorating indirect call distribution factor that leads to target count loss. 2021-04-23 11:09:22 -07:00
SampleProfileProbe.cpp [CSSPGO] Unblocking optimizations by dangling pseudo probes. 2021-03-03 22:44:42 -08:00
StripDeadPrototypes.cpp
StripSymbols.cpp [Transforms] Use range-based for loops (NFC) 2021-02-08 22:33:53 -08:00
SyntheticCountsPropagation.cpp Internalize some cl::opt global variables or move them under namespace llvm 2021-05-07 11:15:43 -07:00
ThinLTOBitcodeWriter.cpp [ThinLTO] Copy UnnamedAddr when spliting module. 2021-04-19 14:04:58 -07:00
WholeProgramDevirt.cpp Internalize some cl::opt global variables or move them under namespace llvm 2021-05-07 11:15:43 -07:00