llvm/lib/Target/Hexagon
Evan Cheng 8688a58c53 Teach SDISel to combine fsin / fcos into a fsincos node if the following
conditions are met:
1. They share the same operand and are in the same BB.
2. Both outputs are used.
3. The target has a native instruction that maps to ISD::FSINCOS node or
   the target provides a sincos library call.

Implemented the generic optimization in sdisel and enabled it for
Mac OSX. Also added an additional optimization for x86_64 Mac OSX by
using an alternative entry point __sincos_stret which returns the two
results in xmm0 / xmm1.

rdar://13087969
PR13204


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@173755 91177308-0d34-0410-b5e6-96231b3b80d8
2013-01-29 02:32:37 +00:00
..
InstPrinter Use the new script to sort the includes of every file under lib. 2012-12-03 16:50:05 +00:00
MCTargetDesc Use the new script to sort the includes of every file under lib. 2012-12-03 16:50:05 +00:00
TargetInfo Move all of the header files which are involved in modelling the LLVM IR 2013-01-02 11:36:10 +00:00
CMakeLists.txt [CMake] Update dependencies to intrinsics_gen corresponding to r169711. 2012-12-10 05:27:15 +00:00
Hexagon.h Revert 156634 upon request until code improvement changes are made. 2012-05-14 19:35:42 +00:00
Hexagon.td Move generic Hexagon subtarget information into Hexagon.td 2012-12-04 04:29:16 +00:00
HexagonAsmPrinter.cpp Move all of the header files which are involved in modelling the LLVM IR 2013-01-02 11:36:10 +00:00
HexagonAsmPrinter.h Delete executive bit on ./lib/Target/Hexagon/HexagonAsmPrinter.h. 2012-12-29 15:23:06 +00:00
HexagonCallingConv.td Hexagon V5 FP Support. 2012-05-10 20:20:25 +00:00
HexagonCallingConvLower.cpp Move all of the header files which are involved in modelling the LLVM IR 2013-01-02 11:36:10 +00:00
HexagonCallingConvLower.h Sort includes for all of the .h files under the 'lib' tree. These were 2012-12-04 07:12:27 +00:00
HexagonCFGOptimizer.cpp Use the new script to sort the includes of every file under lib. 2012-12-03 16:50:05 +00:00
HexagonExpandPredSpillCode.cpp Use the new script to sort the includes of every file under lib. 2012-12-03 16:50:05 +00:00
HexagonFrameLowering.cpp Move all of the header files which are involved in modelling the LLVM IR 2013-01-02 11:36:10 +00:00
HexagonFrameLowering.h
HexagonHardwareLoops.cpp Move all of the header files which are involved in modelling the LLVM IR 2013-01-02 11:36:10 +00:00
HexagonInstrFormats.td Added multiclass for post-increment load instructions. 2012-11-14 20:38:48 +00:00
HexagonInstrFormatsV4.td Add TSFlags to ALU32 type instructions for constant-extender/Relationship maps. 2012-12-20 06:45:39 +00:00
HexagonInstrInfo.cpp Add indexed load/store instructions for offset validation check. 2013-01-17 18:42:37 +00:00
HexagonInstrInfo.h Sort includes for all of the .h files under the 'lib' tree. These were 2012-12-04 07:12:27 +00:00
HexagonInstrInfo.td Remove more unnecessary # operators with nothing to paste proceeding them. 2013-01-07 06:14:20 +00:00
HexagonInstrInfoV3.td Remove variable_ops from call instructions in most targets. 2012-07-13 20:44:29 +00:00
HexagonInstrInfoV4.td Remove more unnecessary # operators with nothing to paste proceeding them. 2013-01-07 06:14:20 +00:00
HexagonInstrInfoV5.td Revert 156634 upon request until code improvement changes are made. 2012-05-14 19:35:42 +00:00
HexagonIntrinsics.td Hexagon V5 intrinsics support. 2012-05-11 19:39:13 +00:00
HexagonIntrinsicsDerived.td Hexagon V5 intrinsics support. 2012-05-11 19:39:13 +00:00
HexagonIntrinsicsV3.td
HexagonIntrinsicsV4.td
HexagonIntrinsicsV5.td Remove tabs. 2012-07-19 00:25:04 +00:00
HexagonISelDAGToDAG.cpp Move all of the header files which are involved in modelling the LLVM IR 2013-01-02 11:36:10 +00:00
HexagonISelLowering.cpp Teach SDISel to combine fsin / fcos into a fsincos node if the following 2013-01-29 02:32:37 +00:00
HexagonISelLowering.h Move all of the header files which are involved in modelling the LLVM IR 2013-01-02 11:36:10 +00:00
HexagonMachineFunctionInfo.h
HexagonMachineScheduler.cpp MIsched: Improve the interface to SchedDFS analysis (subtrees). 2013-01-25 06:33:57 +00:00
HexagonMachineScheduler.h Sort includes for all of the .h files under the 'lib' tree. These were 2012-12-04 07:12:27 +00:00
HexagonMCInst.h Sort includes for all of the .h files under the 'lib' tree. These were 2012-12-04 07:12:27 +00:00
HexagonMCInstLower.cpp Move all of the header files which are involved in modelling the LLVM IR 2013-01-02 11:36:10 +00:00
HexagonNewValueJump.cpp Use the new script to sort the includes of every file under lib. 2012-12-03 16:50:05 +00:00
HexagonOperands.td Move all operand definitions into HexagonOperands.td 2012-12-04 05:00:31 +00:00
HexagonPeephole.cpp Move all of the header files which are involved in modelling the LLVM IR 2013-01-02 11:36:10 +00:00
HexagonRegisterInfo.cpp Move all of the header files which are involved in modelling the LLVM IR 2013-01-02 11:36:10 +00:00
HexagonRegisterInfo.h Sort includes for all of the .h files under the 'lib' tree. These were 2012-12-04 07:12:27 +00:00
HexagonRegisterInfo.td Hexagon V5 FP Support. 2012-05-10 20:20:25 +00:00
HexagonRemoveSZExtArgs.cpp Move all of the header files which are involved in modelling the LLVM IR 2013-01-02 11:36:10 +00:00
HexagonSchedule.td Porting Hexagon MI Scheduler to the new API. 2012-09-04 14:49:56 +00:00
HexagonScheduleV4.td Porting Hexagon MI Scheduler to the new API. 2012-09-04 14:49:56 +00:00
HexagonSelectCCInfo.td Emacs-tag and some comment fix for all ARM, CellSPU, Hexagon, MBlaze, MSP430, PPC, PTX, Sparc, X86, XCore. 2012-02-18 12:03:15 +00:00
HexagonSelectionDAGInfo.cpp
HexagonSelectionDAGInfo.h Emacs-tag and some comment fix for all ARM, CellSPU, Hexagon, MBlaze, MSP430, PPC, PTX, Sparc, X86, XCore. 2012-02-18 12:03:15 +00:00
HexagonSplitTFRCondSets.cpp Use the new script to sort the includes of every file under lib. 2012-12-03 16:50:05 +00:00
HexagonSubtarget.cpp fix HexagonSubtarget parsing of -mv flag 2012-08-20 19:56:47 +00:00
HexagonSubtarget.h Sort includes for all of the .h files under the 'lib' tree. These were 2012-12-04 07:12:27 +00:00
HexagonTargetMachine.cpp Switch TargetTransformInfo from an immutable analysis pass that requires 2013-01-07 01:37:14 +00:00
HexagonTargetMachine.h Switch TargetTransformInfo from an immutable analysis pass that requires 2013-01-07 01:37:14 +00:00
HexagonTargetObjectFile.cpp Move all of the header files which are involved in modelling the LLVM IR 2013-01-02 11:36:10 +00:00
HexagonTargetObjectFile.h Emacs-tag and some comment fix for all ARM, CellSPU, Hexagon, MBlaze, MSP430, PPC, PTX, Sparc, X86, XCore. 2012-02-18 12:03:15 +00:00
HexagonVarargsCallingConvention.h Move TargetData to DataLayout. 2012-10-08 16:38:25 +00:00
HexagonVLIWPacketizer.cpp Add TSFlags to ALU32 type instructions for constant-extender/Relationship maps. 2012-12-20 06:45:39 +00:00
LLVMBuild.txt Hexagon: enable assembler output through the MC layer. 2012-04-12 17:55:53 +00:00
Makefile Hexagon: enable assembler output through the MC layer. 2012-04-12 17:55:53 +00:00