1
0
mirror of https://github.com/RPCS3/llvm-mirror.git synced 2024-10-21 03:53:04 +02:00
llvm-mirror/lib/CodeGen/SelectionDAG
Benjamin Kramer 07f18e78ba SelectionDAGBuilder: When emitting small compare chains for switches order them by using edge weights.
SimplifyCFG tends to form a lot of 2-3 case switches when merging branches. Move
the most likely condition to the front so it is checked first and the others can
be skipped. This is currently not as effective as it could be because SimplifyCFG
destroys profiling metadata when merging branches and switches. Merging branch
weight metadata is tricky though.

This code touches at most 3 cases so I didn't use a proper sorting algorithm.

llvm-svn: 157521
2012-05-26 20:01:32 +00:00
..
CMakeLists.txt Refactor the SelectionDAG's 'dump' methods into their own .cpp file. 2012-03-13 05:47:27 +00:00
DAGCombiner.cpp DAGCombiner should not change the type of an extract_vector index. 2012-05-08 20:56:07 +00:00
FastISel.cpp Properly constrain register classes for sub-registers. 2012-05-20 06:38:37 +00:00
FunctionLoweringInfo.cpp Tabs, formatting and long lines oh my! 2012-02-24 01:59:01 +00:00
InstrEmitter.cpp Add an MF argument to TRI::getPointerRegClass() and TII::getRegClass(). 2012-05-07 22:10:26 +00:00
InstrEmitter.h Simplify EXTRACT_SUBREG emission. 2011-10-05 20:26:40 +00:00
LegalizeDAG.cpp Change interface for TargetLowering::LowerCallTo and TargetLowering::LowerCall 2012-05-25 16:35:28 +00:00
LegalizeFloatTypes.cpp Convert assert(0) to llvm_unreachable 2012-02-05 08:31:47 +00:00
LegalizeIntegerTypes.cpp Change interface for TargetLowering::LowerCallTo and TargetLowering::LowerCall 2012-05-25 16:35:28 +00:00
LegalizeTypes.cpp Change interface for TargetLowering::LowerCallTo and TargetLowering::LowerCall 2012-05-25 16:35:28 +00:00
LegalizeTypes.h Fix a thinko in DisintegrateMERGE_VALUES. Patch by Xiaoyi Guo. 2012-05-16 07:57:18 +00:00
LegalizeTypesGeneric.cpp Remove unnecessary default cases in switches that cover all enum values. 2012-01-10 16:47:17 +00:00
LegalizeVectorOps.cpp When emulating vselect using OR/AND/XOR make sure to bitcast the result back to the original type. 2012-04-15 15:08:09 +00:00
LegalizeVectorTypes.cpp Removed useless switch for default case when switch was covering all the enum values 2012-04-04 00:53:04 +00:00
LLVMBuild.txt LLVMBuild: Remove trailing newline, which irked me. 2011-12-12 19:48:00 +00:00
Makefile
ResourcePriorityQueue.cpp misched preparation: rename core scheduler methods for consistency. 2012-03-07 23:00:49 +00:00
ScheduleDAGFast.cpp Use uint16_t to store instruction implicit uses and defs. Reduces static data. 2012-03-08 08:22:45 +00:00
ScheduleDAGRRList.cpp Mark some static arrays as const. 2012-05-24 06:35:32 +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 preparation: rename core scheduler methods for consistency. 2012-03-07 23:00:49 +00:00
ScheduleDAGVLIW.cpp misched preparation: rename core scheduler methods for consistency. 2012-03-07 23:00:49 +00:00
SDNodeDbgValue.h Do not lose debug info of an inlined function argument even if the argument is only used through GEPs. 2011-02-18 22:43:42 +00:00
SDNodeOrdering.h
SelectionDAG.cpp Change interface for TargetLowering::LowerCallTo and TargetLowering::LowerCall 2012-05-25 16:35:28 +00:00
SelectionDAGBuilder.cpp SelectionDAGBuilder: When emitting small compare chains for switches order them by using edge weights. 2012-05-26 20:01:32 +00:00
SelectionDAGBuilder.h Recommited reworked r156804: 2012-05-18 08:32:28 +00:00
SelectionDAGDumper.cpp Rename @llvm.debugger to @llvm.debugtrap. 2012-05-14 18:58:10 +00:00
SelectionDAGISel.cpp Add some constantness. No functionality change. 2012-04-30 23:41:30 +00:00
SelectionDAGPrinter.cpp drop unneeded config.h includes 2011-12-22 23:04:07 +00:00
TargetLowering.cpp Simplify code for calling a function where CanLowerReturn fails, fixing a small bug in the process. 2012-05-25 00:09:29 +00:00
TargetSelectionDAGInfo.cpp