llvm-mirror/lib/IR
Roman Lebedev b6a0e78067 [Value][InstCombine] Fix one-use checks in PHI-of-op -> Op-of-PHI[s] transforms to be one-user checks
As FIXME said, they really should be checking for a single user,
not use, so let's do that. It is not *that* unusual to have
the same value as incoming value in a PHI node, not unlike
how a PHI may have the same incoming basic block more than once.

There isn't a nice way to do that, Value::users() isn't uniqified,
and Value only tracks it's uses, not Users, so the check is
potentially costly since it does indeed potentially involes
traversing the entire use list of a value.
2020-08-26 20:20:41 +03:00
..
AbstractCallSite.cpp Remove getNumUses() comparisons (NFC) 2020-05-02 11:05:19 +02:00
AsmWriter.cpp [DebugInfo][flang]Added support for representing Fortran assumed length strings 2020-08-22 10:13:40 +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 [X86][AutoUpgrade] Simplify string management in UpgradeDataLayoutString a bit. NFCI 2020-08-19 17:48:11 -07: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 "Revert "[NFC][llvm] Make the contructors of ElementCount private."" 2020-08-19 17:26:36 +00:00
ConstantFold.h Remove "mask" operand from shufflevector. 2020-03-31 13:08:59 -07:00
ConstantRange.cpp [ConstantRange][CVP] Make use of abs poison flag 2020-07-30 23:06:10 +02:00
Constants.cpp [Constants] Handle FNeg in getWithOperands. 2020-08-21 16:50:56 +01: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
DataLayout.cpp [llvm] support graceful failure of DataLayout parsing 2020-08-17 15:10:37 +02:00
DebugInfo.cpp Revert "[Instruction] Add updateLocationAfterHoist helper" 2020-08-11 14:54:09 -07:00
DebugInfoMetadata.cpp [DebugInfo][flang]Added support for representing Fortran assumed length strings 2020-08-22 10:13:40 +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 [llvm][LV] Replace unsigned VF with ElementCount VF [NFCI] 2020-08-24 13:54:03 +00:00
DiagnosticPrinter.cpp
DIBuilder.cpp [DebugInfo][flang]Added support for representing Fortran assumed length strings 2020-08-22 10:13:40 +05:30
Dominators.cpp [DomTree] Extend update API to allow a post CFG view. 2020-08-21 17:23:08 -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
Globals.cpp [X86][ELF] Prefer lowering MC_GlobalAddress operands to .Lfoo$local for STV_DEFAULT only 2020-08-14 00:09:15 +01:00
GVMaterializer.cpp
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 [InstCombine] Remove unused entries in gc-live bundle of statepoint 2020-08-22 01:36:22 +07:00
IntrinsicInst.cpp [VP][Fix] canIgnoreVectorLength for scalable types 2020-06-04 14:17:42 +02:00
IRBuilder.cpp Revert "Revert "[NFC][llvm] Make the contructors of ElementCount private."" 2020-08-19 17:26:36 +00:00
IRPrintingPasses.cpp IRPrintingPasses.h - simplify unnecessary header with forward declarations. NFC. 2020-07-27 14:51:28 +01:00
LegacyPassManager.cpp [OldPM] Print out a bit more when passes lie about changing IR 2020-07-28 10:01:24 -06: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 Reduce dropTriviallyDeadConstantArrays cumulative time percentage from 17% to 4% 2020-08-07 11:36:30 -07:00
LLVMContextImpl.h [DebugInfo][flang]Added support for representing Fortran assumed length strings 2020-08-22 10:13:40 +05:30
LLVMRemarkStreamer.cpp Avoid including FileSystem.h from MemoryBuffer.h 2020-02-29 12:30:23 -08:00
Mangler.cpp IR: Rename Argument::hasPassPointeeByValueAttr to prepare for byref 2020-07-16 13:50:49 -04:00
MDBuilder.cpp [MDBuilder] Don't use stable sort for sorting integers. 2020-03-28 21:19:46 +01: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 [ThinLTO] Compile time improvement to propagateAttributes 2020-07-31 10:54:02 -07: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][PassInstrumentation] Add PreservedAnalyses parameter to AfterPass* callbacks 2020-08-21 16:10:42 +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 Revert "Revert "[NFC][llvm] Make the contructors of ElementCount private."" 2020-08-19 17:26:36 +00: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 [Value][InstCombine] Fix one-use checks in PHI-of-op -> Op-of-PHI[s] transforms to be one-user checks 2020-08-26 20:20:41 +03: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] Additional check for intrinsic get.active.lane.mask 2020-08-25 15:44:33 +01:00