llvm-6502/lib/CodeGen/SelectionDAG
Shuxin Yang 970755e519 This patch is to fix radar://8426430. It is about llvm support of __builtin_debugtrap()
which is supposed to consistently raise SIGTRAP across all systems. In contrast,
__builtin_trap() behave differently on different systems. e.g. it raises SIGTRAP on ARM, and
SIGILL on X86. The purpose of __builtin_debugtrap() is to consistently provide "trap"
functionality, in the mean time preserve the compatibility with on gcc on __builtin_trap().

  The X86 backend is already able to handle debugtrap(). This patch is to:
  1) make front-end recognize "__builtin_debugtrap()" (emboddied in the one-line change to Clang).
  2) In DAG legalization phase, by default, "debugtrap" will be replaced with "trap", which
     make the __builtin_debugtrap() "available" to all existing ports without the hassle of
     changing their code.
  3) If trap-function is specified (via -trap-func=xyz to llc), both __builtin_debugtrap() and
     __builtin_trap() will be expanded into the function call of the specified trap function.
    This behavior may need change in the future.

  The provided testing-case is to make sure 2) and 3) are working for ARM port, and we
already have a testing case for x86. 


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@166300 91177308-0d34-0410-b5e6-96231b3b80d8
2012-10-19 20:11:16 +00:00
..
CMakeLists.txt llvm/lib: [CMake] Add explicit dependency to intrinsics_gen. 2012-06-24 13:32:01 +00:00
DAGCombiner.cpp Simplify condition checking as CONCAT assume all inputs of the same type. 2012-10-19 03:17:00 +00:00
FastISel.cpp Move TargetData to DataLayout. 2012-10-08 16:38:25 +00:00
FunctionLoweringInfo.cpp Move TargetData to DataLayout. 2012-10-08 16:38:25 +00:00
InstrEmitter.cpp Move TargetData to DataLayout. 2012-10-08 16:38:25 +00:00
InstrEmitter.h Allow trailing physreg RegisterSDNode operands on non-variadic instructions. 2012-07-04 23:53:23 +00:00
LegalizeDAG.cpp This patch is to fix radar://8426430. It is about llvm support of __builtin_debugtrap() 2012-10-19 20:11:16 +00:00
LegalizeFloatTypes.cpp Follow the same routine to add target float expansion hook 2012-10-11 07:22:01 +00:00
LegalizeIntegerTypes.cpp Fix PR13991: legalizing an overflowing multiplication operation is harder than 2012-10-02 15:03:49 +00:00
LegalizeTypes.cpp Move TargetData to DataLayout. 2012-10-08 16:38:25 +00:00
LegalizeTypes.h Add alternative support for FP_ROUND from v2f32 to v2f64 2012-10-10 16:32:15 +00:00
LegalizeTypesGeneric.cpp Fix big-endian codegen bug in DAGTypeLegalizer::ExpandRes_BITCAST 2012-10-12 15:42:58 +00:00
LegalizeVectorOps.cpp Fix a typo. 2012-09-02 12:21:50 +00:00
LegalizeVectorTypes.cpp Add alternative support for FP_ROUND from v2f32 to v2f64 2012-10-10 16:32:15 +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 Add a really faster pre-RA scheduler (-pre-RA-sched=linearize). It doesn't use 2012-10-17 19:39:36 +00:00
ScheduleDAGRRList.cpp Move TargetData to DataLayout. 2012-10-08 16:38:25 +00:00
ScheduleDAGSDNodes.cpp Add a really faster pre-RA scheduler (-pre-RA-sched=linearize). It doesn't use 2012-10-17 19:39:36 +00:00
ScheduleDAGSDNodes.h Add a really faster pre-RA scheduler (-pre-RA-sched=linearize). It doesn't use 2012-10-17 19:39:36 +00:00
ScheduleDAGVLIW.cpp Move TargetData to DataLayout. 2012-10-08 16:38:25 +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 Mark unimplemented copy constructors and copy assignment operators as LLVM_DELETED_FUNCTION. 2012-09-18 02:01:41 +00:00
SelectionDAG.cpp Resubmit the changes to llvm core to update the functions to support different pointer sizes on a per address space basis. 2012-10-15 16:24:29 +00:00
SelectionDAGBuilder.cpp This patch is to fix radar://8426430. It is about llvm support of __builtin_debugtrap() 2012-10-19 20:11:16 +00:00
SelectionDAGBuilder.h Move TargetData to DataLayout. 2012-10-08 16:38:25 +00:00
SelectionDAGDumper.cpp Fix PR11985 2012-09-12 21:43:09 +00:00
SelectionDAGISel.cpp Freeze the reserved registers as soon as isel is complete. 2012-10-15 21:33:06 +00:00
SelectionDAGPrinter.cpp Constify SDNodeIterator an stop its only non-const user being cast stripped 2012-09-05 22:03:34 +00:00
TargetLowering.cpp This patch is to fix radar://8426430. It is about llvm support of __builtin_debugtrap() 2012-10-19 20:11:16 +00:00
TargetSelectionDAGInfo.cpp Move TargetData to DataLayout. 2012-10-08 16:38:25 +00:00