llvm-6502/lib/CodeGen/SelectionDAG
Chris Lattner 729c6d1da8 Fix a nasty dag combiner bug that caused nondeterminstic crashes (MY FAVORITE!):
SimplifySelectOps would eliminate a Select, delete it, then return true.

The clients would see that it did something and return null.

The top level would see a null return, and decide that nothing happened,
proceeding to process the node in other ways: boom.

The fix is simple: clients of SimplifySelectOps should return the select
node itself.

In order to catch really obnoxious boogs like this in the future, add an
assert that nodes are not deleted.  We do this by checking for a sentry node
type that the SDNode dtor sets when a node is destroyed.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@28514 91177308-0d34-0410-b5e6-96231b3b80d8
2006-05-27 00:43:02 +00:00
..
DAGCombiner.cpp Fix a nasty dag combiner bug that caused nondeterminstic crashes (MY FAVORITE!): 2006-05-27 00:43:02 +00:00
LegalizeDAG.cpp Change RET node to include signness information of the return values. e.g. 2006-05-26 23:09:09 +00:00
Makefile
ScheduleDAG.cpp lib/Target/Target.td 2006-05-18 20:42:07 +00:00
ScheduleDAGList.cpp Refactor a bunch of includes so that TargetMachine.h doesn't have to include 2006-05-12 06:33:49 +00:00
ScheduleDAGRRList.cpp Turn on -sched-commute-nodes by default. 2006-05-25 08:37:31 +00:00
ScheduleDAGSimple.cpp Refactor a bunch of includes so that TargetMachine.h doesn't have to include 2006-05-12 06:33:49 +00:00
SelectionDAG.cpp Add a new ISD::CALL node, make the default impl of TargetLowering::LowerCallTo 2006-05-16 22:53:20 +00:00
SelectionDAGISel.cpp Make CALL node consistent with RET node. Signness of value has type MVT::i32 2006-05-26 23:13:20 +00:00
SelectionDAGPrinter.cpp print arbitrary constant pool entries 2006-03-05 09:38:03 +00:00
TargetLowering.cpp Another typo. Pointed out by Nate Begeman. 2006-05-17 18:22:14 +00:00