[llvm-commits] CVS: llvm/docs/ReleaseNotes.html

2007-05-18 Thread Duncan Sands
Changes in directory llvm/docs: ReleaseNotes.html updated: 1.384 -> 1.385 --- Log message: Fix typo. --- Diffs of the changes: (+2 -2) ReleaseNotes.html |4 ++-- 1 files changed, 2 insertions(+), 2 deletions(-) Index: llvm/docs/ReleaseNotes.html diff -u llvm/docs/ReleaseNotes.html:1.

[llvm-commits] CVS: llvm/test/lib/llvm.exp

2007-05-18 Thread Duncan Sands
Changes in directory llvm/test/lib: llvm.exp updated: 1.23 -> 1.24 --- Log message: Fix typo. --- Diffs of the changes: (+1 -1) llvm.exp |2 +- 1 files changed, 1 insertion(+), 1 deletion(-) Index: llvm/test/lib/llvm.exp diff -u llvm/test/lib/llvm.exp:1.23 llvm/test/lib/llvm.exp:1.24

[llvm-commits] Fold duplicate actions for multiple landing pads

2007-05-20 Thread Duncan Sands
This fixes a FIXME in the dwarf writer: different landing pads may have the same actions, but a new action entry was being written for each one. With this patch only distinct actions are written. I was inspired to do this after noticing that the same action was being output 24 times in an example

[llvm-commits] CVS: llvm/lib/CodeGen/DwarfWriter.cpp

2007-05-21 Thread Duncan Sands
Changes in directory llvm/lib/CodeGen: DwarfWriter.cpp updated: 1.146 -> 1.147 --- Log message: Only emit one entry in the exception action table for each action, even if it occurs for multiple landing pads. --- Diffs of the changes: (+116 -65) DwarfWriter.cpp | 181 ++

Re: [llvm-commits] Patch for correct landing pad code emission

2007-05-23 Thread Duncan Sands
Hi Anton, > Please find attached patch, which fixes LLVM's behaviour during code > emission in LPs. > > Currently AddLandingPad() function emits llvm.eh.exception only for > TRY_EXCEPT blocks. But sometimes (see, e.g. g++.dg/eh/unexpected1.C) gcc > generates code of form: > > try { > throw(); >

Re: [llvm-commits] Patch for correct landing pad code emission

2007-05-23 Thread Duncan Sands
Hi Anton, > while this patch works, I think it is suboptimal in some cases. > I am still investigating how to avoid this suboptimality. I suggest > this patch be put on hold for a day or two until I have finished. I don't think it can be improved at this point. However the patch could be a bit

[llvm-commits] CVS: llvm/test/C++Frontend/2007-05-23-TryFinally.cpp

2007-05-30 Thread Duncan Sands
Changes in directory llvm/test/C++Frontend: 2007-05-23-TryFinally.cpp added (r1.1) --- Log message: Testcase for http://lists.cs.uiuc.edu/pipermail/llvm-commits/Week-of-Mon-20070528/050047.html --- Diffs of the changes: (+15 -0) 2007-05-23-TryFinally.cpp | 15 +++ 1 files ch

[llvm-commits] EH cleanup

2007-05-30 Thread Duncan Sands
TypeInfos are passed around as pointers (i8*), yet when a null value is needed it is passed as an i32 value of 0, rather than an i8* null. The attached patches change to using an i8* null in LLVM and llvm-gcc. At the same time I eliminated some uses of std::vector as a way of holding a single Val

Re: [llvm-commits] [127801] When an LLVM type has struct padding that overlaps with important fields of

2007-05-31 Thread Duncan Sands
Hi Chris, this breaks the Ada build since the TYPE_SIZE may not be a constant: > + if (TYPE_SIZE(type) == 0 || > + PadStartBits >= int(TREE_INT_CST_LOW(TYPE_SIZE(type))) || I've attached a fix, which includes some other tweaks for arrays (not very important) plus whitespace cleanup. Ciao,

[llvm-commits] CVS: llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp

2007-06-01 Thread Duncan Sands
Changes in directory llvm/lib/CodeGen/SelectionDAG: SelectionDAGISel.cpp updated: 1.454 -> 1.455 --- Log message: Since TypeInfos are passed as i8 pointers, a NULL TypeInfo should be passed as a null i8 pointer not as a 0 i32. --- Diffs of the changes: (+2 -4) SelectionDAGISel.cpp |6 +

Re: [llvm-commits] [127801] When an LLVM type has struct padding that overlaps with important fields of

2007-06-01 Thread Duncan Sands
> > Hi Chris, this breaks the Ada build since the TYPE_SIZE may not be > > a constant: > > > >> + if (TYPE_SIZE(type) == 0 || > >> + PadStartBits >= int(TREE_INT_CST_LOW(TYPE_SIZE(type))) || > > > > I've attached a fix, which includes some other tweaks for arrays > > (not very important) pl

Re: [llvm-commits] CVS: llvm/lib/CodeGen/BranchFolding.cpp

2007-06-01 Thread Duncan Sands
Hi Dale, > Arrange for only 1 of multiple branches to landing pad to be kept. you seem to assume that there is at most one landing pad block for a given MBB, i.e. that all invokes in the MBB unwind to the same landing pad. Are you sure that's true? Ciao, Duncan. ___

Re: [llvm-commits] CVS: llvm/lib/CodeGen/BranchFolding.cpp

2007-06-01 Thread Duncan Sands
Hi Dale, > Arrange for only 1 of multiple branches to landing pad to be kept. it struck me that this patch seems to assume that if a successor is a landing pad then it is necessarily a landing pad for the current MBB. But couldn't it be the landing pad for some other MBB, and simply a normal suc

Re: [llvm-commits] [127801] When an LLVM type has struct padding that overlaps with important fields of

2007-06-01 Thread Duncan Sands
Hi Chris, > Okay, do you have a testcase that demonstrates this? I will synthesize one for you. > Also, the code for handling "large arrays" isn't needed. This code > is only called for fixed size structures that are small. Hey, you are the one who used getInt64 to get the array length! :) A

Re: [llvm-commits] CVS: llvm/lib/CodeGen/BranchFolding.cpp

2007-06-01 Thread Duncan Sands
Hi Dale, > > it struck me that this patch seems to assume that if a successor > > is a landing pad then it is necessarily a landing pad for the > > current MBB. > > I wasn't intending to assume that; how so? > > > But couldn't it be the landing pad for some other > > MBB, and simply a normal suc

Re: [llvm-commits] [127801] When an LLVM type has struct padding that overlaps with important fields of

2007-06-01 Thread Duncan Sands
> > Okay, do you have a testcase that demonstrates this? > > I will synthesize one for you. Actually a testcase would be pointless, since the compiler crashes during the (Ada) compiler build. It wouldn't be pointless if I could make a C or C++ testcase, but I don't think it can be done except in

[llvm-commits] CVS: llvm/lib/CodeGen/DwarfWriter.cpp MachineModuleInfo.cpp

2007-06-02 Thread Duncan Sands
Changes in directory llvm/lib/CodeGen: DwarfWriter.cpp updated: 1.149 -> 1.150 MachineModuleInfo.cpp updated: 1.15 -> 1.16 --- Log message: Integrate exception filter support and exception catch support. This simplifies the code in DwarfWriter, allows for multiple filters and makes it trivial

[llvm-commits] CVS: llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp

2007-06-02 Thread Duncan Sands
Changes in directory llvm/lib/CodeGen/SelectionDAG: SelectionDAGISel.cpp updated: 1.455 -> 1.456 --- Log message: Integrate exception filter support and exception catch support. This simplifies the code in DwarfWriter, allows for multiple filters and makes it trivial to specify filters accompa

[llvm-commits] CVS: llvm/include/llvm/CodeGen/MachineModuleInfo.h

2007-06-02 Thread Duncan Sands
Changes in directory llvm/include/llvm/CodeGen: MachineModuleInfo.h updated: 1.15 -> 1.16 --- Log message: Integrate exception filter support and exception catch support. This simplifies the code in DwarfWriter, allows for multiple filters and makes it trivial to specify filters accompanied by

[llvm-commits] CVS: llvm/include/llvm/CodeGen/MachineModuleInfo.h

2007-06-02 Thread Duncan Sands
Changes in directory llvm/include/llvm/CodeGen: MachineModuleInfo.h updated: 1.16 -> 1.17 --- Log message: The semantics of invoke require that we always jump to the unwind block (landing pad) when an exception unwinds through the call. This doesn't quite match the way the dwarf unwinder works

[llvm-commits] CVS: llvm/lib/CodeGen/MachineModuleInfo.cpp

2007-06-02 Thread Duncan Sands
Changes in directory llvm/lib/CodeGen: MachineModuleInfo.cpp updated: 1.16 -> 1.17 --- Log message: The semantics of invoke require that we always jump to the unwind block (landing pad) when an exception unwinds through the call. This doesn't quite match the way the dwarf unwinder works: by de

Re: [llvm-commits] noinline attributes patch

2007-06-04 Thread Duncan Sands
Hi Tanya, I notice that a least one line seems to be more than 80 characters wide, and also that in some places tabs are used for indentation rather than spaces. Ciao, Duncan. ___ llvm-commits mailing list llvm-commits@cs.uiuc.edu http://lists.cs.uiuc.e

[llvm-commits] CVS: llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp

2007-06-06 Thread Duncan Sands
Changes in directory llvm/lib/CodeGen/SelectionDAG: SelectionDAGISel.cpp updated: 1.456 -> 1.457 --- Log message: Additional fix for PR1422: http://llvm.org/PR1422 : make sure the landing pad label is placed in the correct machine basic block - do not rely on the eh.exception intrinsic being i

[llvm-commits] CVS: llvm/lib/CodeGen/DwarfWriter.cpp

2007-06-06 Thread Duncan Sands
Changes in directory llvm/lib/CodeGen: DwarfWriter.cpp updated: 1.150 -> 1.151 --- Log message: Fold the exception actions table harder: if two typeid lists start the same, only output one copy of the common part. --- Diffs of the changes: (+68 -56) DwarfWriter.cpp | 124 +

Re: [llvm-commits] CVS: llvm/lib/Transforms/IPO/InlineSimple.cpp

2007-06-07 Thread Duncan Sands
Missing spaces after "if": > + if(GV == 0) > + if(InitList == 0) > +if(const Function *f = dyn_cast(Elt)) Also, in this last "if" you call the function "f" but I guess "F" would be more consistent. Ciao, Duncan. ___ llvm-commits mailing list l

[llvm-commits] CVS: llvm/test/C++Frontend/2007-05-23-TryFinally.cpp

2007-06-07 Thread Duncan Sands
Changes in directory llvm/test/C++Frontend: 2007-05-23-TryFinally.cpp updated: 1.1 -> 1.2 --- Log message: Make this test pass if llvm-g++ was built without exception handling support. --- Diffs of the changes: (+1 -1) 2007-05-23-TryFinally.cpp |2 +- 1 files changed, 1 insertion(+), 1

[llvm-commits] CVS: llvm/test/CFrontend/2007-05-07-NestedStructReturn.c

2007-06-07 Thread Duncan Sands
Changes in directory llvm/test/CFrontend: 2007-05-07-NestedStructReturn.c updated: 1.1 -> 1.2 --- Log message: Make the struct bigger, in an attempt to get a "struct return" on more platforms. --- Diffs of the changes: (+1 -1) 2007-05-07-NestedStructReturn.c |2 +- 1 files changed, 1 i

[llvm-commits] CVS: llvm/lib/CodeGen/DwarfWriter.cpp

2007-06-08 Thread Duncan Sands
Changes in directory llvm/lib/CodeGen: DwarfWriter.cpp updated: 1.151 -> 1.152 --- Log message: Use more realistically sized vectors. Reserve capacity if we know in advance how much will be used. --- Diffs of the changes: (+7 -4) DwarfWriter.cpp | 11 +++ 1 files changed, 7 inse

[llvm-commits] Fix PR1224 differently

2007-06-09 Thread Duncan Sands
The fix that was applied for PR1224 stops the compiler crashing but breaks exception handling. The problem described in PR1224 is that invoke is a terminator that can produce a value. The value may be needed in other blocks. The code that writes to registers values needed in other blocks runs be

[llvm-commits] llvm-gcc: correct parameter attributes for nested functions

2007-06-09 Thread Duncan Sands
When I got rid of the inreg attribute for static chain parameters, I simply deleted the attribute adding code while I should have pushed a attribute of "none" - this results in attributes for other parameters being applied to the wrong parameters (off by one). Fixed by the attached patch. Ciao,

[llvm-commits] CVS: llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp

2007-06-12 Thread Duncan Sands
Changes in directory llvm/lib/CodeGen/SelectionDAG: SelectionDAGISel.cpp updated: 1.458 -> 1.459 --- Log message: The fix that was applied for PR1224: http://llvm.org/PR1224 stops the compiler crashing but breaks exception handling. The problem described in PR1224: http://llvm.org/PR1224 is

[llvm-commits] CVS: llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp

2007-06-13 Thread Duncan Sands
Changes in directory llvm/lib/CodeGen/SelectionDAG: SelectionDAGISel.cpp updated: 1.461 -> 1.462 --- Log message: Only correctly lower exception handing intrinsics if exception handling is turned on. Likewise for scanning of invokes to mark landing pads. --- Diffs of the changes: (+7 -8)

[llvm-commits] Workaround for PR1508

2007-06-13 Thread Duncan Sands
Look for eh.filter and eh.selector intrinsics in the successor to an empty (exception for a branch) landing pad. The big FIXME comment explains more. Testcase included, along with an XFAIL for a test which uses eh.selector in a routine with no landing pads (not possible in llvm-gcc generated code)

Re: [llvm-commits] Workaround for PR1508

2007-06-13 Thread Duncan Sands
Hi Chris, > + // Inform the MachineModuleInfo of the personality for this > landing pad. > + ConstantExpr *CE = dyn_cast(I.getOperand(2)); > + assert(CE && CE->getOpcode() == Instruction::BitCast && > > Please just use cast<> instead of dyn_cast, which guarantees no null > return. but the

[llvm-commits] CVS: llvm/docs/SourceLevelDebugging.html

2007-06-14 Thread Duncan Sands
Changes in directory llvm/docs: SourceLevelDebugging.html updated: 1.28 -> 1.29 --- Log message: Fix typos. --- Diffs of the changes: (+3 -3) SourceLevelDebugging.html |6 +++--- 1 files changed, 3 insertions(+), 3 deletions(-) Index: llvm/docs/SourceLevelDebugging.html diff -u llvm/

Re: [llvm-commits] Workaround for PR1508

2007-06-15 Thread Duncan Sands
> Seems fine to me, minor comments: How about this? [I had to make the critical edge detection less conservative after finding a testcase in which some critical edges were not empty]. Ciao, Duncan. Index: llvm.master/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp

[llvm-commits] CVS: llvm/test/C++Frontend/2007-05-23-TryFinally.cpp

2007-06-15 Thread Duncan Sands
Changes in directory llvm/test/C++Frontend: 2007-05-23-TryFinally.cpp updated: 1.2 -> 1.3 --- Log message: Use "ignore" rather than grep tricks. --- Diffs of the changes: (+2 -1) 2007-05-23-TryFinally.cpp |3 ++- 1 files changed, 2 insertions(+), 1 deletion(-) Index: llvm/test/C++Fro

[llvm-commits] CVS: llvm/test/CodeGen/Generic/2007-04-14-EHSelectorCrash.ll 2007-06-06-CriticalEdgeLandingPad.ll

2007-06-15 Thread Duncan Sands
Changes in directory llvm/test/CodeGen/Generic: 2007-04-14-EHSelectorCrash.ll updated: 1.2 -> 1.3 2007-06-06-CriticalEdgeLandingPad.ll updated: 1.1 -> 1.2 --- Log message: Workaround for PR1508: http://llvm.org/PR1508 . --- Diffs of the changes: (+5 -1) 2007-04-14-EHSelectorCrash.ll

[llvm-commits] CVS: llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp

2007-06-15 Thread Duncan Sands
Changes in directory llvm/lib/CodeGen/SelectionDAG: SelectionDAGISel.cpp updated: 1.463 -> 1.464 --- Log message: Workaround for PR1508: http://llvm.org/PR1508 . --- Diffs of the changes: (+96 -29) SelectionDAGISel.cpp | 125 +++ 1 files cha

Re: [llvm-commits] Workaround for PR1508

2007-06-15 Thread Duncan Sands
> Ah, another minor simplification: > > +/// isFilterOrSelector - Return true if this instruction is a call > to the > +/// eh.filter or the eh.selector intrinsic. > +static bool isFilterOrSelector(Instruction *I) { >if (IntrinsicInst *II = dyn_cast(I)) > return II->getIntrinsicID() ==

Re: [llvm-commits] [128471] Add annotate attribute.

2007-06-16 Thread Duncan Sands
Hi, > + // Add llvm.global.annotations > + if (!AttributeAnnotateGlobals.empty()) { > +std::vector AttrList; since you know how big this vector is going to be, you could reserve that much space here. > +for (unsigned i = 0, e = AttributeAnnotateGlobals.size(); i != e; ++i) { > + C

Re: [llvm-commits] CVS: llvm/lib/CodeGen/LiveIntervalAnalysis.cpp

2007-06-28 Thread Duncan Sands
Hi Evan > If a livein is not used in the block. It's live through. thanks for doing this. Does this mean that the value in the livein register is available in all blocks reachable from this one? If so, why is propagateEHRegister needed? Or does it mean that the value is available in successor

Re: [llvm-commits] CVS: llvm/lib/CodeGen/Selection DAG/DAGCombiner.cpp

2007-06-28 Thread Duncan Sands
Hi, > > It seems like folding undef/X to undef isn't safe either though, with > > the way it sounds like undef is intended to work. This code: > > > > %x = udiv i32 undef, %intmax > > %y = udiv i32 %x, 2 > > > > will always set %y to 0. Maybe instcombine can fold the second > > udiv by looking

Re: [llvm-commits] CVS: llvm/lib/CodeGen/Selection DAG/DAGCombiner.cpp

2007-06-29 Thread Duncan Sands
Hi, > >>> It seems like folding undef/X to undef isn't safe either though, here is my understanding of how to fold undef. I hope it clarifies this confusing area. Of course, I could be confused myself but I hope not :) (1) When is it OK to fold "y=foo(undef)" to "y=undef"? I claim that it is

Re: [llvm-commits] CVS: llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp

2007-06-29 Thread Duncan Sands
Hi Evan, > +/// propagateEHRegister - The specified EH register is required in a > successor > +/// of the EH landing pad. Propagate it (by adding it to livein) to all the > +/// blocks in the paths between the landing pad and the specified block. thanks for this fix. For the moment we don't re

Re: [llvm-commits] [llvm] r37851 - /llvm/trunk/lib/CodeGen/SelectionDAG/DAGCombiner.cpp

2007-07-03 Thread Duncan Sands
Hi Dan, > + // fold (add x, undef) -> undef > + if (N1.getOpcode() == ISD::UNDEF) > +return N1; what if N0 is undef and not N1? > - // If either operand is undef, the result is undef > - if (N0.getOpcode() == ISD::UNDEF || N1.getOpcode() == ISD::UNDEF) > -return DAG.getNode(ISD::UNDE

Re: [llvm-commits] [llvm] r37851 - /llvm/trunk/lib/CodeGen/SelectionDAG/DAGCombiner.cpp

2007-07-04 Thread Duncan Sands
> Looking at it a little more, I think the instcombine folds are actually > wrong here. For example, it does X + undef -> undef, but that's wrong if > X is a NaN. Right, that's why I suggested X + undef -> X. Ciao, Duncan. ___ llvm-commits mailing list

[llvm-commits] Handle nested try-catch statements

2007-07-04 Thread Duncan Sands
These patches, to LLVM and llvm-gcc, add support for nested try-catch statements. Previously, only the inner most catch or filter was being taken into account. Thanks to inlining it is possible for a function to contain any number of filters and catches nested within each other (without inlining

[llvm-commits] [test-suite] r37873 - in /test-suite/trunk/SingleSource/UnitTests/Vector/SSE: sse.expandfft.c sse.isamax.c sse.stepfft.c

2007-07-04 Thread Duncan Sands
Author: baldrick Date: Wed Jul 4 15:09:16 2007 New Revision: 37873 URL: http://llvm.org/viewvc/llvm-project?rev=37873&view=rev Log: In isamax, clearly align==1 should have been align==3. Add bres to the indices calculated using SSE to correct for the earlier offsetting of xp. Align xbig and ind

[llvm-commits] [llvm] r37874 - /llvm/trunk/test/C++Frontend/2007-07-04-NestedCatches.cpp

2007-07-04 Thread Duncan Sands
Author: baldrick Date: Wed Jul 4 15:48:48 2007 New Revision: 37874 URL: http://llvm.org/viewvc/llvm-project?rev=37874&view=rev Log: Nested try-catch-filter testcase. Added: llvm/trunk/test/C++Frontend/2007-07-04-NestedCatches.cpp Added: llvm/trunk/test/C++Frontend/2007-07-04-NestedCatches.c

[llvm-commits] [llvm] r37875 - in /llvm/trunk: docs/ExceptionHandling.html include/llvm/Intrinsics.td lib/CodeGen/IntrinsicLowering.cpp lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp

2007-07-04 Thread Duncan Sands
Author: baldrick Date: Wed Jul 4 15:52:51 2007 New Revision: 37875 URL: http://llvm.org/viewvc/llvm-project?rev=37875&view=rev Log: Extend eh.selector to support both catches and filters. Drop the eh.filter intrinsic. Modified: llvm/trunk/docs/ExceptionHandling.html llvm/trunk/include/ll

[llvm-commits] llvm-gcc: exception handling tweaks

2007-07-04 Thread Duncan Sands
(1) Fix some comments. (2) Correct off-by-one in test for branching within the same scope (currently it never triggers, but comes out in the wash later). (3) Have all branches to the same destination share cleanup code, not just exception unwinding branches. Currently each non-unwind branch (like

[llvm-commits] [llvm] r37907 - /llvm/trunk/CREDITS.TXT

2007-07-05 Thread Duncan Sands
7&r1=37906&r2=37907&view=diff == --- llvm/trunk/CREDITS.TXT (original) +++ llvm/trunk/CREDITS.TXT Thu Jul 5 05:32:33 2007 @@ -203,7 +203,7 @@ N: Duncan Sands E: [EMAIL PROTECTED] -D: Ada front-end +

[llvm-commits] [llvm] r37908 - in /llvm/trunk: include/llvm/CodeGen/MachineModuleInfo.h lib/CodeGen/MachineModuleInfo.cpp

2007-07-05 Thread Duncan Sands
Author: baldrick Date: Thu Jul 5 10:15:01 2007 New Revision: 37908 URL: http://llvm.org/viewvc/llvm-project?rev=37908&view=rev Log: Make sure only one copy of a filter is placed in the exception handling table if we encounter it multiple times. Filters could be folded harder than this, but that

Re: [llvm-commits] [PATCH] Add the byval attribute and a bit more

2007-07-06 Thread Duncan Sands
> +SturtByVal= 1<<4, ///< Struct passed by value What about arrays? It may sometimes be useful to pass them by value too. Ciao, Duncan. ___ llvm-commits mailing list llvm-commits@cs.uiuc.edu http://lists.cs.uiuc.edu/mailman/listinfo/llvm-

[llvm-commits] [llvm] r37938 - /llvm/trunk/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp

2007-07-06 Thread Duncan Sands
Author: baldrick Date: Fri Jul 6 04:18:59 2007 New Revision: 37938 URL: http://llvm.org/viewvc/llvm-project?rev=37938&view=rev Log: Remove propagateEHRegister in favour of a more limited fix, that is adequate while PR1508 remains unresolved. Modified: llvm/trunk/lib/CodeGen/SelectionDAG/Sele

[llvm-commits] [llvm] r37937 - /llvm/trunk/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp

2007-07-06 Thread Duncan Sands
Author: baldrick Date: Fri Jul 6 04:10:03 2007 New Revision: 37937 URL: http://llvm.org/viewvc/llvm-project?rev=37937&view=rev Log: Remove ExtractGlobalVariable - use StripPointerCasts instead. Modified: llvm/trunk/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp Modified: llvm/trunk/lib/CodeG

[llvm-commits] [llvm] r37942 - /llvm/trunk/lib/CodeGen/DwarfWriter.cpp

2007-07-06 Thread Duncan Sands
Author: baldrick Date: Fri Jul 6 07:46:24 2007 New Revision: 37942 URL: http://llvm.org/viewvc/llvm-project?rev=37942&view=rev Log: Indexes into the list of filter ids cannot be output directly: they need to be turned into byte offsets (often the same, but may not be if there are many type infos)

[llvm-commits] [llvm] r37947 - in /llvm/trunk/lib/CodeGen: IntrinsicLowering.cpp SelectionDAG/SelectionDAGISel.cpp

2007-07-06 Thread Duncan Sands
Author: baldrick Date: Fri Jul 6 09:46:23 2007 New Revision: 37947 URL: http://llvm.org/viewvc/llvm-project?rev=37947&view=rev Log: The exception handling intrinsics return values, so must be lowered to a value, not nothing at all. Subtle point: I made eh_selector return 0 and eh_typeid_for retur

Re: [llvm-commits] [llvm] r37940 - in /llvm/trunk : include/llvm/CodeGen/SelectionDAGNodes.h include/l lvm/ParameterAttributes.h lib/AsmParser/Lexer.l lib/ AsmParser/llvmAsmParser.y lib/CodeGen/Select

2007-07-07 Thread Duncan Sands
Hi Reid, > > +ByVal = 1<<4, ///< Struct passed by value > > I would prefer this be named StructByVal, to be clear this was changed because it should also be possible to pass arrays by value, not just structs. So it is rather the comment that should be fixed, not the name. That

Re: [llvm-commits] [llvm] r37940 - in /llvm/trunk : include/llvm/CodeGen/SelectionDAGNodes.h include/l lvm/ParameterAttributes.h lib/AsmParser/Lexer.l lib/ AsmParser/llvmAsmParser.y lib/CodeGen/Select

2007-07-08 Thread Duncan Sands
Hi Reid, > > > > +ByVal = 1<<4, ///< Struct passed by value > > > > > > I would prefer this be named StructByVal, to be clear > > > > this was changed because it should also be possible to pass arrays > > by value, not just structs. So it is rather the comment that should > > b

[llvm-commits] llvm-gcc: generate itanium style exception handling code

2007-07-08 Thread Duncan Sands
This patch causes llvm-gcc to output itanium style exception handling code. It does not turn on zero cost exceptions (they cannot be turned on until llvm-gcc is capable of correctly building the unwinder in the runtime library - this is PR1379). Tested by bootstrapping the compiler and running th

Re: [llvm-commits] [llvm] r37940 - in /llvm/trunk: include/llvm/CodeGen/SelectionDAGNodes.h include/llvm/ParameterAttributes.h lib/AsmParser/Lexer.l lib/AsmParser/llvmAsmParser.y lib/CodeGen/Selection

2007-07-09 Thread Duncan Sands
Hi Rafael, > > Thus in the IR the function is declared to take a pointer to the > > struct as an argument, and the ByVal marker is placed for the > > benefit of the code generators. However it is not clear to me > > that this is semantically correct. Doesn't ByVal mean what it > > says: a copy o

[llvm-commits] llvm-gcc: always create a call to eh.selector, even if there are no type infos

2007-07-10 Thread Duncan Sands
A function that only has cleanups (destructors) to run when an exception is raised currently is not assigned a personality function because we don't bother creating a call to eh.selector if there are no catches. But the personality function is still needed, since it is the personality function t

[llvm-commits] [llvm] r38535 - /llvm/trunk/lib/CodeGen/BranchFolding.cpp

2007-07-11 Thread Duncan Sands
Author: baldrick Date: Wed Jul 11 03:47:55 2007 New Revision: 38535 URL: http://llvm.org/viewvc/llvm-project?rev=38535&view=rev Log: If assertions are not enabled, we should return False here. Modified: llvm/trunk/lib/CodeGen/BranchFolding.cpp Modified: llvm/trunk/lib/CodeGen/BranchFolding.c

Re: [llvm-commits] [llvm] r38506 - in /llvm/trunk: lib/VMCore/Verifier.cpp test/Verifier/byval-1.ll test/Verifier/byval-2.ll test/Verifier/byval-3.ll test/Verifier/byval-4.ll

2007-07-11 Thread Duncan Sands
Hi Rafael, > +Assert(!Attrs->paramHasAttr(0, ParamAttr::ByVal), > + "Attribute ByVal should not apply to functions!"); why not? > +"Attribute ByVal should only apply to pointer to structs!", > &F); Why? Why are arrays not allowed? Here's my take on this whole ar

[llvm-commits] [llvm] r39732 - /llvm/trunk/lib/CodeGen/LLVMTargetMachine.cpp

2007-07-11 Thread Duncan Sands
Author: baldrick Date: Wed Jul 11 11:59:20 2007 New Revision: 39732 URL: http://llvm.org/viewvc/llvm-project?rev=39732&view=rev Log: Exception handling has been implemented. Modified: llvm/trunk/lib/CodeGen/LLVMTargetMachine.cpp Modified: llvm/trunk/lib/CodeGen/LLVMTargetMachine.cpp URL: ht

[llvm-commits] [llvm] r39775 - /llvm/trunk/lib/CodeGen/DwarfWriter.cpp

2007-07-12 Thread Duncan Sands
Author: baldrick Date: Thu Jul 12 08:51:39 2007 New Revision: 39775 URL: http://llvm.org/viewvc/llvm-project?rev=39775&view=rev Log: The type ids making up a filter are unsigned, and should be output as unsigned values. Checked against gcc. Modified: llvm/trunk/lib/CodeGen/DwarfWriter.cpp M

[llvm-commits] [llvm-gcc-4-2] r39806 - /llvm-gcc-4-2/trunk/gcc/llvm-convert.cpp

2007-07-13 Thread Duncan Sands
Author: baldrick Date: Fri Jul 13 07:12:16 2007 New Revision: 39806 URL: http://llvm.org/viewvc/llvm-project?rev=39806&view=rev Log: Forward port of [129234]. exception handling tweaks from Duncan: (1) Fix some comments. (2) Correct off-by-one in test for branching within the same scope (current

[llvm-commits] [llvm-gcc-4-2] r39805 - in /llvm-gcc-4-2/trunk/gcc: llvm-convert.cpp llvm-internal.h

2007-07-13 Thread Duncan Sands
Author: baldrick Date: Fri Jul 13 07:09:59 2007 New Revision: 39805 URL: http://llvm.org/viewvc/llvm-project?rev=39805&view=rev Log: Forward port of [129185]. Handle nested try-catch statements: From Duncan These patches, to LLVM and llvm-gcc, add support for nested try-catch statements. Previo

[llvm-commits] [llvm-gcc-4-2] r39807 - /llvm-gcc-4-2/trunk/gcc/llvm-convert.cpp

2007-07-13 Thread Duncan Sands
Author: baldrick Date: Fri Jul 13 07:13:27 2007 New Revision: 39807 URL: http://llvm.org/viewvc/llvm-project?rev=39807&view=rev Log: Forward port of [129251]. Duncan and Anton have found this to be safe, enable it now! at some point, we should remove the #define and the #ifdef's entirely, woo!

[llvm-commits] [llvm-gcc-4-2] r39809 - in /llvm-gcc-4-2/trunk: gcc/Makefile.in gcc/configure gcc/configure.ac libcpp/configure libcpp/configure.ac

2007-07-13 Thread Duncan Sands
Author: baldrick Date: Fri Jul 13 08:04:38 2007 New Revision: 39809 URL: http://llvm.org/viewvc/llvm-project?rev=39809&view=rev Log: Forward port of [129252] and [129261]. Enable llvm-gcc to build when LLVM is configured with --enable-expensive-checks. Modified: llvm-gcc-4-2/trunk/gcc/Make

[llvm-commits] [llvm-gcc-4-2] r39808 - /llvm-gcc-4-2/trunk/gcc/llvm-convert.cpp

2007-07-13 Thread Duncan Sands
.selector to be generated in every landing pad, even if it has no type infos, because that specifies the personality function. Patch from Duncan Sands. Modified: llvm-gcc-4-2/trunk/gcc/llvm-convert.cpp Modified: llvm-gcc-4-2/trunk/gcc/llvm-convert.cpp URL: http://llvm.org/viewvc/llvm-project

[llvm-commits] [llvm-gcc-4-2] r39799 - /llvm-gcc-4-2/trunk/gcc/config/i386/linux.h

2007-07-13 Thread Duncan Sands
Author: baldrick Date: Fri Jul 13 04:40:57 2007 New Revision: 39799 URL: http://llvm.org/viewvc/llvm-project?rev=39799&view=rev Log: Misapplied patch. Modified: llvm-gcc-4-2/trunk/gcc/config/i386/linux.h Modified: llvm-gcc-4-2/trunk/gcc/config/i386/linux.h URL: http://llvm.org/viewvc/llvm-p

[llvm-commits] [llvm-gcc-4-2] r39804 - /llvm-gcc-4-2/trunk/build_gcc

2007-07-13 Thread Duncan Sands
Author: baldrick Date: Fri Jul 13 06:24:59 2007 New Revision: 39804 URL: http://llvm.org/viewvc/llvm-project?rev=39804&view=rev Log: Correct the directory that the man pages are installed into. Modified: llvm-gcc-4-2/trunk/build_gcc Modified: llvm-gcc-4-2/trunk/build_gcc URL: http://llvm.or

[llvm-commits] [llvm-gcc-4-2] r39810 - in /llvm-gcc-4-2/trunk/gcc/config/i386: i386.c llvm-i386-target.h

2007-07-13 Thread Duncan Sands
Author: baldrick Date: Fri Jul 13 10:37:31 2007 New Revision: 39810 URL: http://llvm.org/viewvc/llvm-project?rev=39810&view=rev Log: Make it compile on i386. Modified: llvm-gcc-4-2/trunk/gcc/config/i386/i386.c llvm-gcc-4-2/trunk/gcc/config/i386/llvm-i386-target.h Modified: llvm-gcc-4-2/t

[llvm-commits] [llvm-gcc-4-2] r39811 - in /llvm-gcc-4-2/trunk/gcc: llvm-convert.cpp llvm-debug.cpp

2007-07-13 Thread Duncan Sands
Author: baldrick Date: Fri Jul 13 10:43:51 2007 New Revision: 39811 URL: http://llvm.org/viewvc/llvm-project?rev=39811&view=rev Log: Include tm_p.h to get the definition of REG_CLASS_FROM_CONSTRAINT. Simplify use of vectors with constructors, and fix some small conversion bugs while there (eg: ind

Re: [llvm-commits] [llvm] r39851 - in /llvm/trunk: include/llvm/Support/ConstantRange.h lib/Support/ConstantRange.cpp

2007-07-14 Thread Duncan Sands
Hi Nick, > + /// maximalIntersectWith - Return the range that results from the > intersection > + /// of this range with another range. The resultant range is guaranteed to > + /// include all elements contained in both input ranges, and is also > + /// guaranteed to be the smallest possible

[llvm-commits] [llvm-gcc-4-2] r39869 - /llvm-gcc-4-2/trunk/gcc/tree.h

2007-07-15 Thread Duncan Sands
Author: baldrick Date: Sun Jul 15 06:55:54 2007 New Revision: 39869 URL: http://llvm.org/viewvc/llvm-project?rev=39869&view=rev Log: Check correctness of using decl_with_rtl in LLVM constructs. Modified: llvm-gcc-4-2/trunk/gcc/tree.h Modified: llvm-gcc-4-2/trunk/gcc/tree.h URL: http://llvm.

[llvm-commits] [llvm-gcc-4-2] r39870 - /llvm-gcc-4-2/trunk/gcc/varasm.c

2007-07-15 Thread Duncan Sands
Author: baldrick Date: Sun Jul 15 06:58:12 2007 New Revision: 39870 URL: http://llvm.org/viewvc/llvm-project?rev=39870&view=rev Log: Move RTL checks inside ifndef ENABLE_LLVM. Restore some logic from llvm-gcc-4.0 that got lost. Modified: llvm-gcc-4-2/trunk/gcc/varasm.c Modified: llvm-gcc-4-

[llvm-commits] [llvm-gcc-4-2] r39871 - in /llvm-gcc-4-2/trunk/gcc: bt-load.c c-common.c llvm-backend.cpp

2007-07-15 Thread Duncan Sands
Author: baldrick Date: Sun Jul 15 07:02:31 2007 New Revision: 39871 URL: http://llvm.org/viewvc/llvm-project?rev=39871&view=rev Log: Fix a bunch of small problems noticed by the compiler. Modified: llvm-gcc-4-2/trunk/gcc/bt-load.c llvm-gcc-4-2/trunk/gcc/c-common.c llvm-gcc-4-2/trunk/g

[llvm-commits] [llvm-gcc-4-2] r39872 - /llvm-gcc-4-2/trunk/gcc/langhooks-def.h

2007-07-15 Thread Duncan Sands
Author: baldrick Date: Sun Jul 15 07:04:54 2007 New Revision: 39872 URL: http://llvm.org/viewvc/llvm-project?rev=39872&view=rev Log: Fix misplaced langhook initializer. Apple people take note: you may want to fix this in your own gcc 4.2 tree. Modified: llvm-gcc-4-2/trunk/gcc/langhooks-def.h

[llvm-commits] [llvm-gcc-4-2] r39877 - /llvm-gcc-4-2/trunk/gcc/tree.h

2007-07-15 Thread Duncan Sands
Author: baldrick Date: Sun Jul 15 12:02:38 2007 New Revision: 39877 URL: http://llvm.org/viewvc/llvm-project?rev=39877&view=rev Log: Condition DECL_LLVM_SET_P on HAS_RTL_P, as in DECL_RTL_SET_P. This makes print-tree work in the presence of FIELD_DECLs which can no longer hold RTL. Modified:

Re: [llvm-commits] [129555] Implement missing dwarf builtins, used by the libstdc++ unwinder.

2007-07-15 Thread Duncan Sands
Can you please also apply it on the 4.2 branch. I would do it myself but it hasn't turned up in the mirror yet (which is strange - maybe something is wrong with the mirror?), and I think you changed it a bit compared to the version in bugzilla. Thanks, Duncan. ___

[llvm-commits] [llvm-gcc-4-2] r39878 - in /llvm-gcc-4-2/trunk/gcc: llvm-convert.cpp llvm-internal.h llvm-types.cpp

2007-07-15 Thread Duncan Sands
Author: baldrick Date: Sun Jul 15 12:58:07 2007 New Revision: 39878 URL: http://llvm.org/viewvc/llvm-project?rev=39878&view=rev Log: We used to stash the index of the LLVM field corresponding to a FIELD_DECL directly in the field declaration. But the place we would store it doesn't exist in gcc 4

[llvm-commits] [llvm-gcc-4-2] r39918 - /llvm-gcc-4-2/trunk/gcc/ada/Make-lang.in

2007-07-16 Thread Duncan Sands
Author: baldrick Date: Mon Jul 16 03:53:00 2007 New Revision: 39918 URL: http://llvm.org/viewvc/llvm-project?rev=39918&view=rev Log: Make Ada buildable. Modified: llvm-gcc-4-2/trunk/gcc/ada/Make-lang.in Modified: llvm-gcc-4-2/trunk/gcc/ada/Make-lang.in URL: http://llvm.org/viewvc/llvm-proje

[llvm-commits] [llvm-gcc-4-2] r39919 - in /llvm-gcc-4-2/trunk/gcc: llvm-convert.cpp llvm-internal.h llvm-types.cpp

2007-07-16 Thread Duncan Sands
Author: baldrick Date: Mon Jul 16 04:32:56 2007 New Revision: 39919 URL: http://llvm.org/viewvc/llvm-project?rev=39919&view=rev Log: Abort if someone tries to look up a field index value that hasn't been set. Note that if a type has been converted then fields with no index do get an index value (

Re: [llvm-commits] IMPORTANT: llvm-gcc-4.2

2007-07-17 Thread Duncan Sands
On Tuesday 17 July 2007 09:32:28 Reid Spencer wrote: > P.S. > You want the svn switch --relocate option After some fiddling I could persuade svn switch to do something - not sure what it was doing but it sure caused a lot of disk usage :) But I failed to get it to update my working copy correctly,

[llvm-commits] llvm-gcc: call terminate if an exception handling cleanup throws an exception

2007-07-17 Thread Duncan Sands
In gcc, if a language defines lang_protect_cleanup_actions then any exceptions thrown by an exception handling cleanup ("destructor") are supposed to be routed to a call to lang_protect_cleanup_actions. Implement this like in gcc: wrap cleanups in a filter that has as handler the code specified

Re: [llvm-commits] [llvm] r38506 - in /llvm/trunk: lib/VMCore/Verifier.cpp test/Verifier/byval-1.ll test/Verifier/byval-2.ll test/Verifier/byval-3.ll test/Verifier/byval-4.ll

2007-07-17 Thread Duncan Sands
Hi Rafael, > > > +Assert(!Attrs->paramHasAttr(0, ParamAttr::ByVal), > > > + "Attribute ByVal should not apply to functions!"); > > > > why not? > > What does it means to a function to have such an attribute? I see now that I was mislead by the assertion message which should probabl

Re: [llvm-commits] [llvm] r38506 - in /llvm/trunk : lib/VMCore/Verifier.cpp test/Verifier/byval-1.ll test/Verifier/byval-2.ll test/Verifier/byval-3.ll test/Verifier/byval-4.ll

2007-07-17 Thread Duncan Sands
Hi Chris, > This won't work. Unlike struct return, the callee actually can > notice if this happens. For example, consider this: ... > If it were really undefined, this would require the callee to make a > copy of the struct before passing it in. In order to get decent > codegen, this cop

Re: [llvm-commits] [llvm] r38506 - in /llvm/trunk: lib/VMCore/Verifier.cpp test/Verifier/byval-1.ll test/Verifier/byval-2.ll test/Verifier/byval-3.ll test/Verifier/byval-4.ll

2007-07-17 Thread Duncan Sands
Hi Rafael, > > I see, thanks for this information. However this seems to be more or > > less exactly the scheme I was suggesting: an explicit copy of the struct > > is made in the IR (done by the caller). In the IR the copy is passed to > > the callee via a pointer which is marked byval. In the

[llvm-commits] [llvm-gcc-4.2] r39973 - in /llvm-gcc-4.2/trunk/gcc: llvm-convert.cpp llvm-internal.h

2007-07-17 Thread Duncan Sands
ired in the dwarf writer (plus some kind of annotation in the IR), much the same as for nothrow functions. Since we don't yet support nothrow functions I didn't try to add any support for this a priori more complicated case. Patch by Duncan Sands Modified: llvm-gcc-4.2/trunk/gcc/llvm-

Re: [llvm-commits] [llvm-gcc-4.2] r39987 - /llvm-gcc-4.2/trunk/gcc/llvm-convert.cpp

2007-07-18 Thread Duncan Sands
Hi Scott, > build -> build2. (Typo) thanks for fixing this. It came from the gcc 4.0 version (which does not need this change). Ciao, Duncan. ___ llvm-commits mailing list llvm-commits@cs.uiuc.edu http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commit

[llvm-commits] [llvm-gcc-4.2] r39999 - in /llvm-gcc-4.2/trunk/gcc: llvm-convert.cpp llvm-internal.h

2007-07-18 Thread Duncan Sands
Author: baldrick Date: Wed Jul 18 04:48:39 2007 New Revision: 3 URL: http://llvm.org/viewvc/llvm-project?rev=3&view=rev Log: Forward port of [129555]. Implement missing dwarf builtins, used by the libstdc++ unwinder. This is more or less workable on x86-32/linux only Patch by Anton Korob

[llvm-commits] [llvm-gcc-4.2] r40000 - /llvm-gcc-4.2/trunk/gcc/llvm-convert.cpp

2007-07-18 Thread Duncan Sands
Author: baldrick Date: Wed Jul 18 06:40:26 2007 New Revision: 4 URL: http://llvm.org/viewvc/llvm-project?rev=4&view=rev Log: For an sret call, we always have to push a pointer argument giving where to place the result - otherwise LLVM will abort because the function is called with the wron

[llvm-commits] [llvm-gcc-4.2] r40001 - /llvm-gcc-4.2/trunk/gcc/cp/pt.c

2007-07-18 Thread Duncan Sands
Author: baldrick Date: Wed Jul 18 08:25:34 2007 New Revision: 40001 URL: http://llvm.org/viewvc/llvm-project?rev=40001&view=rev Log: Restore dropped SET_DECL_ASSEMBLER_NAME and add a missing SET_DECL_LLVM. Yes, gcc really does call SET_DECL_RTL twice in a row, identically, here, even in current g

[llvm-commits] [llvm-gcc-4.2] r40002 - in /llvm-gcc-4.2/trunk/gcc: ada/utils.c c-parser.c cp/init.c cp/semantics.c java/decl.c

2007-07-18 Thread Duncan Sands
Author: baldrick Date: Wed Jul 18 10:03:41 2007 New Revision: 40002 URL: http://llvm.org/viewvc/llvm-project?rev=40002&view=rev Log: Add a bunch of reasonable looking decl_rtl -> decl_llvm changes. Modified: llvm-gcc-4.2/trunk/gcc/ada/utils.c llvm-gcc-4.2/trunk/gcc/c-parser.c llvm-gcc

[llvm-commits] [llvm] r40044 - /llvm/trunk/lib/CodeGen/SelectionDAG/SelectionDAG.cpp

2007-07-19 Thread Duncan Sands
Author: baldrick Date: Thu Jul 19 02:31:58 2007 New Revision: 40044 URL: http://llvm.org/viewvc/llvm-project?rev=40044&view=rev Log: As pointed out by g++-4.2, the original code didn't do what it thought it was doing. Modified: llvm/trunk/lib/CodeGen/SelectionDAG/SelectionDAG.cpp Modified: l

Re: [llvm-commits] [129669] Add support for this builtin: __builtin_ia32_vec_ext_v2di

2007-07-19 Thread Duncan Sands
Can you please also apply it to llvm-gcc-4.2 if appropriate. Thanks, Duncan. ___ llvm-commits mailing list llvm-commits@cs.uiuc.edu http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits

  1   2   3   4   5   6   7   8   >