llvm-6502/lib/CodeGen/SelectionDAG
Bob Wilson 53624a2df5 Refactor and check "onlyReadsMemory" before optimizing builtins.
This patch is mostly just refactoring a bunch of copy-and-pasted code, but
it also adds a check that the call instructions are readnone or readonly.
That check was already present for sin, cos, sqrt, log2, and exp2 calls, but
it was missing for the rest of the builtins being handled in this code.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@161282 91177308-0d34-0410-b5e6-96231b3b80d8
2012-08-03 23:29:17 +00:00
..
CMakeLists.txt llvm/lib: [CMake] Add explicit dependency to intrinsics_gen. 2012-06-24 13:32:01 +00:00
DAGCombiner.cpp Added FMA functionality to X86 target. 2012-08-01 12:06:00 +00:00
FastISel.cpp Try to reduce the compile time impact of r161232. 2012-08-03 21:26:24 +00:00
FunctionLoweringInfo.cpp Move lib/Analysis/DebugInfo.cpp to lib/VMCore/DebugInfo.cpp and 2012-06-28 00:05:13 +00:00
InstrEmitter.cpp InstrEmitter::EmitSubregNode() optimize extract_subreg in this case: 2012-07-11 18:55:07 +00:00
InstrEmitter.h Allow trailing physreg RegisterSDNode operands on non-variadic instructions. 2012-07-04 23:53:23 +00:00
LegalizeDAG.cpp Rename many of the Tmp1, Tmp2, Tmp3 variables to names such as Chain, Value, Ptr, etc. 2012-07-11 11:02:16 +00:00
LegalizeFloatTypes.cpp Convert assert(0) to llvm_unreachable 2012-02-05 08:31:47 +00:00
LegalizeIntegerTypes.cpp Remove tabs. 2012-07-19 00:04:14 +00:00
LegalizeTypes.cpp Change interface for TargetLowering::LowerCallTo and TargetLowering::LowerCall 2012-05-25 16:35:28 +00:00
LegalizeTypes.h Fix a bug in the scalarization of BUILD_VECTOR. BUILD_VECTOR elements may be wider than the output element type. Make sure to trunc them if needed. 2012-07-15 20:39:08 +00:00
LegalizeTypesGeneric.cpp The result type of EXTRACT_VECTOR_ELT doesn't have to match the element type of 2012-07-12 09:01:35 +00:00
LegalizeVectorOps.cpp 'Promote' vector [su]int_to_fp should widen elements. 2012-06-28 21:03:44 +00:00
LegalizeVectorTypes.cpp Change llvm_unreachable in SplitVectorOperand to report_fatal_error. Keeps release builds from crashing if code uses an intrinsic with an illegal type. 2012-07-24 04:11:21 +00:00
LLVMBuild.txt LLVMBuild: Remove trailing newline, which irked me. 2011-12-12 19:48:00 +00:00
Makefile
ResourcePriorityQueue.cpp I'm introducing a new machine model to simultaneously allow simple 2012-07-07 04:00:00 +00:00
ScheduleDAGFast.cpp Simplify some more getAliasSet callers. 2012-06-01 22:38:17 +00:00
ScheduleDAGRRList.cpp Fix a typo (the the => the) 2012-07-23 08:51:15 +00:00
ScheduleDAGSDNodes.cpp Reapply 155668: Fix the SD scheduler to avoid gluing the same node twice. 2012-04-28 01:03:23 +00:00
ScheduleDAGSDNodes.h misched: API for minimum vs. expected latency. 2012-06-05 21:11:27 +00:00
ScheduleDAGVLIW.cpp misched preparation: rename core scheduler methods for consistency. 2012-03-07 23:00:49 +00:00
SDNodeDbgValue.h
SDNodeOrdering.h
SelectionDAG.cpp Consider address spaces for hashing and CSEing DAG nodes. Otherwise two loads from different x86 segments but the same address would get CSEd 2012-07-30 20:23:19 +00:00
SelectionDAGBuilder.cpp Refactor and check "onlyReadsMemory" before optimizing builtins. 2012-08-03 23:29:17 +00:00
SelectionDAGBuilder.h Refactor and check "onlyReadsMemory" before optimizing builtins. 2012-08-03 23:29:17 +00:00
SelectionDAGDumper.cpp Move lib/Analysis/DebugInfo.cpp to lib/VMCore/DebugInfo.cpp and 2012-06-28 00:05:13 +00:00
SelectionDAGISel.cpp Fall back to selection DAG isel for calls to builtin functions. 2012-08-03 04:06:28 +00:00
SelectionDAGPrinter.cpp Move lib/Analysis/DebugInfo.cpp to lib/VMCore/DebugInfo.cpp and 2012-06-28 00:05:13 +00:00
TargetLowering.cpp Conform to LLVM coding style. 2012-07-31 18:07:43 +00:00
TargetSelectionDAGInfo.cpp