1
0
mirror of https://github.com/RPCS3/llvm-mirror.git synced 2024-11-24 11:42:57 +01:00
llvm-mirror/lib/CodeGen/SelectionDAG
Dan Gohman 5d83bd89a5 Define patterns for shld and shrd that match immediate
shift counts, and patterns that match dynamic shift counts
when the subtract is obscured by a truncate node.

Add DAGCombiner support for recognizing rotate patterns
when the shift counts are defined by truncate nodes.

Fix and simplify the code for commuting shld and shrd
instructions to work even when the given instruction doesn't
have a parent, and when the caller needs a new instruction.

These changes allow LLVM to use the shld, shrd, rol, and ror
instructions on x86 to replace equivalent code using two
shifts and an or in many more cases.

llvm-svn: 57662
2008-10-17 01:23:35 +00:00
..
CallingConvLower.cpp Add "inreg" field to CallSDNode (doesn't increase 2008-09-26 19:31:26 +00:00
CMakeLists.txt Initial support for the CMake build system. 2008-09-22 01:08:49 +00:00
DAGCombiner.cpp Define patterns for shld and shrd that match immediate 2008-10-17 01:23:35 +00:00
FastISel.cpp FastISel support for exception-handling constructs. 2008-10-14 23:54:11 +00:00
LegalizeDAG.cpp - Add target lowering hooks that specify which setcc conditions are illegal, 2008-10-15 02:05:31 +00:00
LegalizeFloatTypes.cpp Rename APFloat::convertToAPInt to bitcastToAPInt to 2008-10-09 18:53:47 +00:00
LegalizeIntegerTypes.cpp The result of getSetCCResultType (eg: i32) may be larger 2008-10-03 07:41:46 +00:00
LegalizeTypes.cpp Add "inreg" field to CallSDNode (doesn't increase 2008-09-26 19:31:26 +00:00
LegalizeTypes.h Provide two overloads of AnalyzeNewNode. 2008-09-01 15:10:19 +00:00
LegalizeTypesGeneric.cpp Rename ConstantSDNode::getValue to getZExtValue, for consistency 2008-09-12 16:56:44 +00:00
LegalizeVectorTypes.cpp Rename ConstantSDNode::getValue to getZExtValue, for consistency 2008-09-12 16:56:44 +00:00
Makefile remove attribution from lib Makefiles. 2007-12-29 20:09:26 +00:00
ScheduleDAG.cpp Separate MachineInstr-emitting routines from actual scheduling 2008-09-03 16:01:59 +00:00
ScheduleDAGEmit.cpp Next round of earlyclobber handling. Approach the 2008-09-24 01:07:17 +00:00
ScheduleDAGFast.cpp Fix command-line option printing to print two spaces where needed, 2008-10-14 20:25:08 +00:00
ScheduleDAGList.cpp Fix command-line option printing to print two spaces where needed, 2008-10-14 20:25:08 +00:00
ScheduleDAGRRList.cpp Fix command-line option printing to print two spaces where needed, 2008-10-14 20:25:08 +00:00
SelectionDAG.cpp Add a "loses information" return value to APFloat::convert 2008-10-09 23:00:39 +00:00
SelectionDAGBuild.cpp simplify comparison 2008-10-11 00:08:02 +00:00
SelectionDAGBuild.h Remove SelectionDag early allocation of registers 2008-09-24 23:13:09 +00:00
SelectionDAGISel.cpp FastISel support for exception-handling constructs. 2008-10-14 23:54:11 +00:00
SelectionDAGPrinter.cpp don't print GlobalAddressSDNode's with an offset of zero as "foo0". 2008-09-21 18:38:31 +00:00
TargetLowering.cpp - Add target lowering hooks that specify which setcc conditions are illegal, 2008-10-15 02:05:31 +00:00