llvm-6502/lib/CodeGen/SelectionDAG
Duncan Sands 481dc721c3 The C++ exception handling personality function wants
to know about calls that cannot throw ('nounwind'):
if such a call does throw for some reason then the
personality will terminate the program.  The distinction
between an ordinary call and a nounwind call is that
an ordinary call gets an entry in the exception table
but a nounwind call does not.  This patch sets up the
exception table appropriately.  One oddity is that
I've chosen to bracket nounwind calls with labels (like
invokes) - the other choice would have been to bracket
ordinary calls with labels.  While bracketing
ordinary calls is more natural (because bracketing
by labels would then correspond exactly to getting an
entry in the exception table), I didn't do it because
introducing labels impedes some optimizations and I'm
guessing that ordinary calls occur more often than
nounwind calls.  This fixes the gcc filter2 eh test,
at least at -O0 (the inliner needs some tweaking at
higher optimization levels).


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@45197 91177308-0d34-0410-b5e6-96231b3b80d8
2007-12-19 07:36:31 +00:00
..
CallingConvLower.cpp propagate struct size and alignment of byval arguments to the DAG 2007-08-10 14:44:42 +00:00
DAGCombiner.cpp Don't leave newly created nodes around if it turns out they are not needed. 2007-12-19 01:34:38 +00:00
LegalizeDAG.cpp Implement expand support for MERGE_VALUEs that only produces one result. 2007-11-24 19:12:15 +00:00
LegalizeTypes.cpp implement some methods. 2007-12-08 22:40:18 +00:00
LegalizeTypes.h Add support for splitting the operand of a return instruction. 2007-12-09 00:06:19 +00:00
LegalizeTypesExpand.cpp Add support for splitting the operand of a return instruction. 2007-12-09 00:06:19 +00:00
LegalizeTypesPromote.cpp Split promotion support out to its own file. 2007-12-08 20:24:38 +00:00
LegalizeTypesScalarize.cpp split scalarization out to its own file. 2007-12-08 20:30:28 +00:00
LegalizeTypesSplit.cpp Duncan points out that the subtraction is unneeded since hte code 2007-12-09 17:56:34 +00:00
Makefile For PR780: 2006-07-26 16:18:00 +00:00
ScheduleDAG.cpp Bug fix. Must also match ResNo when matching an operand with a user. 2007-12-14 08:25:15 +00:00
ScheduleDAGList.cpp Make CalcLatency() non-recursive. 2007-10-15 21:33:22 +00:00
ScheduleDAGRRList.cpp FIX for PR1799: When a load is unfolded from an instruction, check if it is a new node. If not, do not create a new SUnit. 2007-12-18 08:42:10 +00:00
SelectionDAG.cpp Fix PR1872: SrcValue and SrcValueOffset should not be used to compute load / store node id. 2007-12-18 19:38:14 +00:00
SelectionDAGISel.cpp The C++ exception handling personality function wants 2007-12-19 07:36:31 +00:00
SelectionDAGPrinter.cpp Add a (disabled by default) way to view the ID of a node. 2007-10-15 05:32:43 +00:00
TargetLowering.cpp Support returning non-power-of-2 vectors to unblock some work 2007-11-27 19:28:48 +00:00