llvm-6502/include/llvm
Duncan Sands ff10341183 Fix a layering violation: hasConstantValue, which is part of the PHINode
class, uses DominatorTree which is an analysis.  This change moves all of
the tricky hasConstantValue logic to SimplifyInstruction, and replaces it
with a very simple literal implementation.  I already taught users of
hasConstantValue that need tricky stuff to use SimplifyInstruction instead.
I didn't update InlineFunction because the IR looks like it might be in a
funky state at the point it calls hasConstantValue, which makes calling
SimplifyInstruction dangerous since it can in theory do a lot of tricky
reasoning.  This may be a pessimization, for example in the case where
all phi node operands are either undef or a fixed constant.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@119459 91177308-0d34-0410-b5e6-96231b3b80d8
2010-11-17 04:30:22 +00:00
..
ADT Fix warnings about missing parents between || and &&. 2010-11-17 02:40:30 +00:00
Analysis Memoize results from ScalarEvolution's getUnsignedRange and getSignedRange. 2010-11-17 02:44:44 +00:00
Assembly
Bitcode
CodeGen Split pseudo-instruction expansion into a separate pass, to make it 2010-11-16 21:02:37 +00:00
CompilerDriver
Config Endian: Get rid of LLVM_IS_HOST_BIG_ENDIAN. 2010-10-22 18:45:12 +00:00
ExecutionEngine JIT: More nitty style tweakage, aka territory marking. 2010-11-13 02:48:57 +00:00
MC Add .loc methods to the streamer. 2010-11-16 21:20:32 +00:00
Object Object: Get rid of sys::Path, Triple, and cleanup namespace. 2010-11-16 01:06:51 +00:00
Support Memoize results from ScalarEvolution's getUnsignedRange and getSignedRange. 2010-11-17 02:44:44 +00:00
System Fix typo: Exectuable -> Executable 2010-11-17 00:43:43 +00:00
Target Code clean up. The peephole pass should be the one updating the instruction 2010-11-15 21:20:45 +00:00
Transforms Let the -inline-threshold command line argument take precedence over the 2010-11-02 23:40:26 +00:00
AbstractTypeUser.h
Argument.h
Attributes.h Add a new 'hotpatch' attribute. This attribute will insert a two-byte no-op 2010-10-25 15:37:09 +00:00
AutoUpgrade.h
BasicBlock.h
CallGraphSCCPass.h
CallingConv.h
CMakeLists.txt
Constant.h
Constants.h
DerivedTypes.h
Function.h Switch attribute macros to use 'LLVM_' as a prefix. We retain the old names 2010-10-23 08:10:43 +00:00
GlobalAlias.h
GlobalValue.h
GlobalVariable.h GlobalOpt: EvaluateFunction() must not evaluate stores to weak_odr globals. 2010-10-19 16:47:23 +00:00
GVMaterializer.h
InitializePasses.h Split pseudo-instruction expansion into a separate pass, to make it 2010-11-16 21:02:37 +00:00
InlineAsm.h Mult-alt constraint incremental development step 3. 2010-10-29 23:37:38 +00:00
InstrTypes.h
Instruction.def
Instruction.h
Instructions.h Fix a layering violation: hasConstantValue, which is part of the PHINode 2010-11-17 04:30:22 +00:00
IntrinsicInst.h
Intrinsics.h
Intrinsics.td Add a pre-dispatch SjLj EH hook on the unwind edge for targets to do any 2010-10-19 23:27:08 +00:00
IntrinsicsAlpha.td
IntrinsicsARM.td
IntrinsicsCellSPU.td
IntrinsicsPowerPC.td
IntrinsicsX86.td
IntrinsicsXCore.td
LinkAllPasses.h Reference RegionPass to stop it being eliminated. 2010-10-25 15:36:50 +00:00
LinkAllVMCore.h
Linker.h
LLVMContext.h
Metadata.h
Module.h
OperandTraits.h
Operator.h
Pass.h Add RegionPass support. 2010-10-20 01:54:44 +00:00
PassAnalysisSupport.h
PassManager.h
PassManagers.h Add RegionPass support. 2010-10-20 01:54:44 +00:00
PassRegistry.h Attempt to fix valgrind complaining about (benign) leaks in pass registration by having PassRegistry 2010-10-20 22:22:30 +00:00
PassSupport.h Attempt to fix valgrind complaining about (benign) leaks in pass registration by having PassRegistry 2010-10-20 22:22:30 +00:00
SymbolTableListTraits.h
Type.h
TypeSymbolTable.h
Use.h
User.h
Value.h Factor out Instruction::isSafeToSpeculativelyExecute's code for 2010-11-11 21:23:25 +00:00
ValueSymbolTable.h