[llvm-commits] [llvm] r43819 - /llvm/trunk/lib/CodeGen/LiveIntervalAnalysis.cpp
Author: evancheng Date: Wed Nov 7 02:08:25 2007 New Revision: 43819 URL: http://llvm.org/viewvc/llvm-project?rev=43819view=rev Log: Simplify my (il)logic. Modified: llvm/trunk/lib/CodeGen/LiveIntervalAnalysis.cpp Modified: llvm/trunk/lib/CodeGen/LiveIntervalAnalysis.cpp URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/CodeGen/LiveIntervalAnalysis.cpp?rev=43819r1=43818r2=43819view=diff == --- llvm/trunk/lib/CodeGen/LiveIntervalAnalysis.cpp (original) +++ llvm/trunk/lib/CodeGen/LiveIntervalAnalysis.cpp Wed Nov 7 02:08:25 2007 @@ -316,6 +316,7 @@ if (!mop.isRegister()) continue; unsigned Reg = mop.getReg(); +unsigned RegI = Reg; if (Reg == 0 || MRegisterInfo::isPhysicalRegister(Reg)) continue; bool isSubReg = RegMap-isSubRegister(Reg); @@ -381,17 +382,7 @@ unsigned RegJ = MI-getOperand(j).getReg(); if (RegJ == 0 || MRegisterInfo::isPhysicalRegister(RegJ)) continue; - bool isSubRegJ = RegMap-isSubRegister(RegJ); - if (isSubRegJ) { -assert(!isSubReg || RegMap-getSubRegisterIndex(RegJ) == SubIdx); -RegJ = RegMap-getSuperRegister(RegJ); - } - // Important to check isSubRegJ == isSubReg. - // e.g. %reg1024 = MOVSX32rr16 %reg1025. It's possible that both - // registers are coalesced to the same register but only %reg1025 is - // a sub-register use. They should not be rewritten to the same - // register. - if (RegJ == li.reg isSubRegJ == isSubReg) { + if (RegJ == RegI) { MI-getOperand(j).setReg(NewVReg); HasUse |= MI-getOperand(j).isUse(); HasDef |= MI-getOperand(j).isDef(); ___ llvm-commits mailing list llvm-commits@cs.uiuc.edu http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits
Re: [llvm-commits] [llvm] r43421 - in /llvm/trunk: include/llvm/Support/Alignment.h lib/CodeGen/SelectionDAG/DAGCombiner.cpp lib/CodeGen/SelectionDAG/LegalizeDAG.cpp lib/CodeGen/SelectionDAG/LegalizeD
Hi Chris, instead of introducing a new header file for this, would it make sense to merge into MathExtras.h? I considered that but (1) it would pull in the rest of MathExtras, for some compile time cost (maybe tiny) and (2) it would need to have a math name (like pow2_gcd), which would make the use of it more obscure. Which is more readable: MinAlign(Align, Offset) or pow2_gcd(Align, Offset) ? That said, I'm happy to put it in MathExtras if you think that better. Ciao, Duncan. ___ llvm-commits mailing list llvm-commits@cs.uiuc.edu http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits
Re: [llvm-commits] [llvm-gcc-4.2] r43399 - /llvm-gcc-4.2/trunk/gcc/llvm-convert.cpp
Hi Bill, the following testcase shows another problem: struct A { int a[1024]; }; void g(struct A *a, struct A *b) { *a = *b; } struct A c; int main(void) { g(c, c); } Note that llvm-gcc generates a memcpy for the *a = *b assignment, but it should be memmove since *a and *b may be the same (as they are in this case). Ciao, Duncan. PS: on some machines memcpy goes faster if you zero out the destination before doing the copy. This shows why doing a memcpy of p to p is a bad idea! ___ llvm-commits mailing list llvm-commits@cs.uiuc.edu http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits
Re: [llvm-commits] [llvm-gcc-4.2] r43399 - /llvm-gcc-4.2/trunk/gcc/llvm-convert.cpp
Hi Bill, Does this help? :-) the tree dumps weren't very informative! :) Here is a testcase that seems to show the same kind of problem, and works on my machine: struct A { int a[11]; }; void Qux() { static struct A C = {0}; struct A __attribute__ ((aligned (1))) Bar; Bar = C; } Can you please confirm that this is the problem you are talking about? Thanks, Duncan. ___ llvm-commits mailing list llvm-commits@cs.uiuc.edu http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits
Re: [llvm-commits] [llvm-gcc-4.2] r43399 - /llvm-gcc-4.2/trunk/gcc/llvm-convert.cpp
On Nov 7, 2007, at 1:20 AM, Duncan Sands wrote: Hi Bill, Does this help? :-) the tree dumps weren't very informative! :) Yeah...there weren't that many that were dumped. :-) Here is a testcase that seems to show the same kind of problem, and works on my machine: struct A { int a[11]; }; void Qux() { static struct A C = {0}; struct A __attribute__ ((aligned (1))) Bar; Bar = C; } Can you please confirm that this is the problem you are talking about? No, this doesn't give the assert. :-( -bw ___ llvm-commits mailing list llvm-commits@cs.uiuc.edu http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits
Re: [llvm-commits] [llvm-gcc-4.2] r43399 - /llvm-gcc-4.2/trunk/gcc/llvm-convert.cpp
Hi Bill, Can you please confirm that this is the problem you are talking about? No, this doesn't give the assert. :-( the memcpy seems to have the wrong alignment in the LLVM IR. This may or may not lead to an assert later I suppose. I meant: is the memcpy getting the wrong alignment for the same reason as in your testcase. Thanks, Duncan. ___ llvm-commits mailing list llvm-commits@cs.uiuc.edu http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits
Re: [llvm-commits] [llvm-gcc-4.2] r43399 - /llvm-gcc-4.2/trunk/gcc/llvm-convert.cpp
Hi Duncan, No, this doesn't give the assert. :-( the memcpy seems to have the wrong alignment in the LLVM IR. This may or may not lead to an assert later I suppose. That's what's wrong here. We're using the alignment from the source pointer as the alignment for the memcpy, which is wrong for the destination pointer. I meant: is the memcpy getting the wrong alignment for the same reason as in your testcase. I believe so. It should also be asserting, but isn't. There's another discussion of this on LLVM-Dev RFC: llvm-convert.cpp Patch. No one likes my original patch, but I just wrote another one that might be more palatable. :-) -bw ___ llvm-commits mailing list llvm-commits@cs.uiuc.edu http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits
[llvm-commits] [llvm] r43829 - in /llvm/trunk: include/llvm/ADT/APFloat.h lib/Bitcode/Reader/DeserializeAPFloat.cpp lib/Bitcode/Writer/SerializeAPFloat.cpp
Author: kremenek Date: Wed Nov 7 12:39:22 2007 New Revision: 43829 URL: http://llvm.org/viewvc/llvm-project?rev=43829view=rev Log: Implemented generic serialization of APFloat. Added: llvm/trunk/lib/Bitcode/Reader/DeserializeAPFloat.cpp llvm/trunk/lib/Bitcode/Writer/SerializeAPFloat.cpp Modified: llvm/trunk/include/llvm/ADT/APFloat.h Modified: llvm/trunk/include/llvm/ADT/APFloat.h URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/include/llvm/ADT/APFloat.h?rev=43829r1=43828r2=43829view=diff == --- llvm/trunk/include/llvm/ADT/APFloat.h (original) +++ llvm/trunk/include/llvm/ADT/APFloat.h Wed Nov 7 12:39:22 2007 @@ -102,6 +102,7 @@ // APInt contains static functions implementing bignum arithmetic. #include llvm/ADT/APInt.h +#include llvm/Bitcode/SerializationFwd.h #include llvm/CodeGen/ValueTypes.h namespace llvm { @@ -181,6 +182,12 @@ explicit APFloat(const APInt , bool isIEEE = false); APFloat(const APFloat ); ~APFloat(); + +/// @brief Used by the Bitcode serializer to emit APInts to Bitcode. +void Emit(Serializer S) const; + +/// @brief Used by the Bitcode deserializer to deserialize APInts. +static APFloat ReadVal(Deserializer D); /* Arithmetic. */ opStatus add(const APFloat , roundingMode); Added: llvm/trunk/lib/Bitcode/Reader/DeserializeAPFloat.cpp URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Bitcode/Reader/DeserializeAPFloat.cpp?rev=43829view=auto == --- llvm/trunk/lib/Bitcode/Reader/DeserializeAPFloat.cpp (added) +++ llvm/trunk/lib/Bitcode/Reader/DeserializeAPFloat.cpp Wed Nov 7 12:39:22 2007 @@ -0,0 +1,24 @@ +//===-- SerializeAPInt.cpp - Serialization for APFloat -*- C++ -*--===// +// +// The LLVM Compiler Infrastructure +// +// This file was developed by Ted Kremenek and is distributed under the +// University of Illinois Open Source License. See LICENSE.TXT for details. +// +//===--===// +// +// This file implements deserialization of APFloat. +// +//===--===// + +#include llvm/ADT/APFloat.h +#include llvm/Bitcode/Deserialize.h + +using namespace llvm; + +APFloat APFloat::ReadVal(Deserializer D) { + APInt x; + D.Read(x); + return APFloat(x); +} + Added: llvm/trunk/lib/Bitcode/Writer/SerializeAPFloat.cpp URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Bitcode/Writer/SerializeAPFloat.cpp?rev=43829view=auto == --- llvm/trunk/lib/Bitcode/Writer/SerializeAPFloat.cpp (added) +++ llvm/trunk/lib/Bitcode/Writer/SerializeAPFloat.cpp Wed Nov 7 12:39:22 2007 @@ -0,0 +1,21 @@ +//===-- SerializeAPInt.cpp - Serialization for APFloat -*- C++ -*--===// +// +// The LLVM Compiler Infrastructure +// +// This file was developed by Ted Kremenek and is distributed under the +// University of Illinois Open Source License. See LICENSE.TXT for details. +// +//===--===// +// +// This file implements serialization of APFloat. +// +//===--===// + +#include llvm/ADT/APFloat.h +#include llvm/Bitcode/Serialize.h + +using namespace llvm; + +void APFloat::Emit(Serializer S) const { + S.Emit(convertToAPInt()); +} ___ llvm-commits mailing list llvm-commits@cs.uiuc.edu http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits
[llvm-commits] [llvm] r43828 - in /llvm/trunk: include/llvm/Bitcode/Deserialize.h include/llvm/Bitcode/Serialization.h include/llvm/Bitcode/Serialize.h lib/Bitcode/Reader/Deserialize.cpp lib/Bitcode/W
Author: kremenek Date: Wed Nov 7 12:24:34 2007 New Revision: 43828 URL: http://llvm.org/viewvc/llvm-project?rev=43828view=rev Log: Implemented serialization of signed integers. Modified: llvm/trunk/include/llvm/Bitcode/Deserialize.h llvm/trunk/include/llvm/Bitcode/Serialization.h llvm/trunk/include/llvm/Bitcode/Serialize.h llvm/trunk/lib/Bitcode/Reader/Deserialize.cpp llvm/trunk/lib/Bitcode/Writer/Serialize.cpp Modified: llvm/trunk/include/llvm/Bitcode/Deserialize.h URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/include/llvm/Bitcode/Deserialize.h?rev=43828r1=43827r2=43828view=diff == --- llvm/trunk/include/llvm/Bitcode/Deserialize.h (original) +++ llvm/trunk/include/llvm/Bitcode/Deserialize.h Wed Nov 7 12:24:34 2007 @@ -95,6 +95,8 @@ ~Deserializer(); uint64_t ReadInt(); + int64_t ReadSInt(); + bool ReadBool() { return ReadInt() ? true : false; } Modified: llvm/trunk/include/llvm/Bitcode/Serialization.h URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/include/llvm/Bitcode/Serialization.h?rev=43828r1=43827r2=43828view=diff == --- llvm/trunk/include/llvm/Bitcode/Serialization.h (original) +++ llvm/trunk/include/llvm/Bitcode/Serialization.h Wed Nov 7 12:24:34 2007 @@ -50,6 +50,11 @@ SERIALIZE_INT_TRAIT(unsigned short) SERIALIZE_INT_TRAIT(unsigned int) SERIALIZE_INT_TRAIT(unsigned long) + +SERIALIZE_INT_TRAIT(signed char) +SERIALIZE_INT_TRAIT(signed short) +SERIALIZE_INT_TRAIT(signed int) +SERIALIZE_INT_TRAIT(signed long) #undef SERIALIZE_INT_TRAIT Modified: llvm/trunk/include/llvm/Bitcode/Serialize.h URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/include/llvm/Bitcode/Serialize.h?rev=43828r1=43827r2=43828view=diff == --- llvm/trunk/include/llvm/Bitcode/Serialize.h (original) +++ llvm/trunk/include/llvm/Bitcode/Serialize.h Wed Nov 7 12:24:34 2007 @@ -37,7 +37,9 @@ template typename T inline void Emit(const T X) { SerializeTraitT::Emit(*this,X); } - void EmitInt(unsigned X); + void EmitInt(uint64_t X); + void EmitSInt(int64_t X); + void EmitBool(bool X) { EmitInt(X); } void EmitCStr(const char* beg, const char* end); void EmitCStr(const char* cstr); Modified: llvm/trunk/lib/Bitcode/Reader/Deserialize.cpp URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Bitcode/Reader/Deserialize.cpp?rev=43828r1=43827r2=43828view=diff == --- llvm/trunk/lib/Bitcode/Reader/Deserialize.cpp (original) +++ llvm/trunk/lib/Bitcode/Reader/Deserialize.cpp Wed Nov 7 12:24:34 2007 @@ -105,6 +105,12 @@ return Record[RecIdx++]; } +int64_t Deserializer::ReadSInt() { + uint64_t x = ReadInt(); + int64_t magnitude = x 1; + return x 0x1 ? -magnitude : magnitude; +} + char* Deserializer::ReadCStr(char* cstr, unsigned MaxLen, bool isNullTerm) { if (cstr == NULL) MaxLen = 0; // Zero this just in case someone does something funny. @@ -226,3 +232,12 @@ INT_READ(unsigned short) INT_READ(unsigned int) INT_READ(unsigned long) + +#define SINT_READ(TYPE)\ +void SerializeTraitTYPE::Read(Deserializer D, TYPE X) {\ + X = (TYPE) D.ReadSInt(); } + +INT_READ(signed char) +INT_READ(signed short) +INT_READ(signed int) +INT_READ(signed long) Modified: llvm/trunk/lib/Bitcode/Writer/Serialize.cpp URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Bitcode/Writer/Serialize.cpp?rev=43828r1=43827r2=43828view=diff == --- llvm/trunk/lib/Bitcode/Writer/Serialize.cpp (original) +++ llvm/trunk/lib/Bitcode/Writer/Serialize.cpp Wed Nov 7 12:24:34 2007 @@ -48,11 +48,18 @@ Stream.ExitBlock(); } -void Serializer::EmitInt(unsigned X) { +void Serializer::EmitInt(uint64_t X) { assert (BlockLevel 0); Record.push_back(X); } +void Serializer::EmitSInt(int64_t X) { + if (X = 0) +EmitInt(X 1); + else +EmitInt((-X 1) | 1); +} + void Serializer::EmitCStr(const char* s, const char* end) { Record.push_back(end - s); @@ -91,3 +98,11 @@ INT_EMIT(unsigned short) INT_EMIT(unsigned int) INT_EMIT(unsigned long) + +#define SINT_EMIT(TYPE)\ +void SerializeTraitTYPE::Emit(SerializerS, TYPE X) { S.EmitSInt(X); } + +SINT_EMIT(signed char) +SINT_EMIT(signed short) +SINT_EMIT(signed int) +SINT_EMIT(signed long) ___ llvm-commits mailing list llvm-commits@cs.uiuc.edu http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits
Re: [llvm-commits] [llvm] r43734 - in /llvm/trunk: lib/AsmParser/ParserInternals.h lib/AsmParser/llvmAsmParser.cpp.cvs lib/AsmParser/llvmAsmParser.h.cvs lib/AsmParser/llvmAsmParser.y lib/AsmParser/llv
On Nov 7, 2007, at 9:51 AM, Chris Lattner wrote: On Nov 5, 2007, at 1:20 PM, Dale Johannesen wrote: Author: johannes Date: Mon Nov 5 15:20:28 2007 New Revision: 43734 URL: http://llvm.org/viewvc/llvm-project?rev=43734view=rev Log: Make labels work in asm blocks; allow labels as parameters. Rename ValueRefList to ParamList in AsmParser, since its only use is for parameters. Hey Dale, +LASM$foo: ; preds = %entry +call void asm sideeffect .file \22block12.c\22, ~{dirflag},~ {fpsr},~{flags}( ) +call void asm sideeffect .line 1, ~{dirflag},~{fpsr},~ {flags}( ) +call void asm sideeffect int $$1, ~{dirflag},~{fpsr},~{flags},~ {memory}( ) +call void asm sideeffect .file \22block12.c\22, ~{dirflag},~ {fpsr},~{flags}( ) +call void asm sideeffect .line 2, ~{dirflag},~{fpsr},~ {flags}( ) +call void asm sideeffect brl ${0:l}, X,~{dirflag},~{fpsr},~ {flags},~{memory}( label %LASM$foo ) This is somewhat dangerous: I think there is code in the compiler that assumes that only phi nodes and terminators use basic block. One specific problem with this is that the data-flow machinery won't know that the asm branches to LASM$foo, so misoptimizations can happen. I guess the question is how common this is an how important it is that it works :) This construct got an internal error before, so I claim this is an improvement. Asm's are still a long way from working well; it wouldn't surprise me if they call for some optimizer changes. (But we really should be disabling most optimizations on asm's, as I've said before.) If you want to be able to compile the same set of programs as Apple's gcc, it needs to work. But not necessarily tomorrow. ___ llvm-commits mailing list llvm-commits@cs.uiuc.edu http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits
Re: [llvm-commits] [llvm] r43734 - in /llvm/trunk: lib/AsmParser/ParserInternals.h lib/AsmParser/llvmAsmParser.cpp.cvs lib/AsmParser/llvmAsmParser.h.cvs lib/AsmParser/llvmAsmParser.y lib/AsmParser/llv
On Nov 5, 2007, at 1:20 PM, Dale Johannesen wrote: Author: johannes Date: Mon Nov 5 15:20:28 2007 New Revision: 43734 URL: http://llvm.org/viewvc/llvm-project?rev=43734view=rev Log: Make labels work in asm blocks; allow labels as parameters. Rename ValueRefList to ParamList in AsmParser, since its only use is for parameters. Hey Dale, +LASM$foo: ; preds = %entry + call void asm sideeffect .file \22block12.c\22, ~{dirflag},~ {fpsr},~{flags}( ) + call void asm sideeffect .line 1, ~{dirflag},~{fpsr},~{flags}( ) + call void asm sideeffect int $$1, ~{dirflag},~{fpsr},~{flags},~ {memory}( ) + call void asm sideeffect .file \22block12.c\22, ~{dirflag},~ {fpsr},~{flags}( ) + call void asm sideeffect .line 2, ~{dirflag},~{fpsr},~{flags}( ) + call void asm sideeffect brl ${0:l}, X,~{dirflag},~{fpsr},~ {flags},~{memory}( label %LASM$foo ) This is somewhat dangerous: I think there is code in the compiler that assumes that only phi nodes and terminators use basic block. One specific problem with this is that the data-flow machinery won't know that the asm branches to LASM$foo, so misoptimizations can happen. I guess the question is how common this is an how important it is that it works :) -Chris ___ llvm-commits mailing list llvm-commits@cs.uiuc.edu http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits
Re: [llvm-commits] CVS: llvm-www/sva/index.html
Yes, we should keep sva- separate from llvm-www. --Vikram http://www.cs.uiuc.edu/~vadve http://llvm.org On Nov 6, 2007, at 10:14 PM, Chris Lattner wrote: Hey John, This should be in a different repository than the main llvm cvs one. You presumably want this to show up at sva.llvm.org or sva.cs.uiuc.edu not llvm.org/sva. I'd suggest just making an sva-www repo. -Chris On Nov 6, 2007, at 6:16 PM, John Criswell wrote: Changes in directory llvm-www/sva: index.html added (r1.1) --- Log message: Skeleton index page. --- Diffs of the changes: (+13 -0) index.html | 13 + 1 files changed, 13 insertions(+) Index: llvm-www/sva/index.html diff -c /dev/null llvm-www/sva/index.html:1.1 *** /dev/null Tue Nov 6 20:15:52 2007 --- llvm-www/sva/index.html Tue Nov 6 20:15:42 2007 *** *** 0 --- 1,13 + html + + title + Secure Virtual Architecture + /title + + body + center + h1Secure Virtual Architecture/h1 + /center + /body + /html + ___ llvm-commits mailing list llvm-commits@cs.uiuc.edu http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits ___ llvm-commits mailing list llvm-commits@cs.uiuc.edu http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits
[llvm-commits] [llvm-gcc-4.0] r43835 - /llvm-gcc-4.0/trunk/gcc/llvm-convert.cpp
Author: void Date: Wed Nov 7 13:29:37 2007 New Revision: 43835 URL: http://llvm.org/viewvc/llvm-project?rev=43835view=rev Log: Hack: Force alignment to 1 in all cases. Modified: llvm-gcc-4.0/trunk/gcc/llvm-convert.cpp Modified: llvm-gcc-4.0/trunk/gcc/llvm-convert.cpp URL: http://llvm.org/viewvc/llvm-project/llvm-gcc-4.0/trunk/gcc/llvm-convert.cpp?rev=43835r1=43834r2=43835view=diff == --- llvm-gcc-4.0/trunk/gcc/llvm-convert.cpp (original) +++ llvm-gcc-4.0/trunk/gcc/llvm-convert.cpp Wed Nov 7 13:29:37 2007 @@ -1297,7 +1297,7 @@ CastToType(Instruction::BitCast, DestPtr, SBP), CastToType(Instruction::BitCast, SrcPtr, SBP), CastToSIntType(Size, IntPtr), -ConstantInt::get(Type::Int32Ty, Align) +ConstantInt::get(Type::Int32Ty, 1) }; Intrinsic::ID IID = @@ -1329,7 +1329,7 @@ CastToType(Instruction::BitCast, DestPtr, SBP), CastToSIntType(SrcVal, Type::Int8Ty), CastToSIntType(Size, IntPtr), -ConstantInt::get(Type::Int32Ty, Align) +ConstantInt::get(Type::Int32Ty, 1) }; Intrinsic::ID IID = ___ llvm-commits mailing list llvm-commits@cs.uiuc.edu http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits
[llvm-commits] [llvm] r43839 - /llvm/trunk/test/CFrontend/2007-11-07-AlignedMemcpy.c
Author: void Date: Wed Nov 7 13:36:26 2007 New Revision: 43839 URL: http://llvm.org/viewvc/llvm-project?rev=43839view=rev Log: Add testcase Added: llvm/trunk/test/CFrontend/2007-11-07-AlignedMemcpy.c Added: llvm/trunk/test/CFrontend/2007-11-07-AlignedMemcpy.c URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/test/CFrontend/2007-11-07-AlignedMemcpy.c?rev=43839view=auto == --- llvm/trunk/test/CFrontend/2007-11-07-AlignedMemcpy.c (added) +++ llvm/trunk/test/CFrontend/2007-11-07-AlignedMemcpy.c Wed Nov 7 13:36:26 2007 @@ -0,0 +1,4 @@ +// RUN: %llvmgcc -c %s -o /dev/null +void bork() { + int Qux[33] = {0}; +} ___ llvm-commits mailing list llvm-commits@cs.uiuc.edu http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits
[llvm-commits] [llvm] r43841 - /llvm/tags/Apple/llvm-1200-21/
Author: void Date: Wed Nov 7 13:41:23 2007 New Revision: 43841 URL: http://llvm.org/viewvc/llvm-project?rev=43841view=rev Log: Creating llvm-1200-21 branch Added: llvm/tags/Apple/llvm-1200-21/ - copied from r43840, llvm/trunk/ ___ llvm-commits mailing list llvm-commits@cs.uiuc.edu http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits
Re: [llvm-commits] [llvm-gcc-4.0] r43835 - /llvm-gcc-4.0/trunk/gcc/llvm-convert.cpp
On Nov 7, 2007, at 11:29 AM, Bill Wendling wrote: Author: void Date: Wed Nov 7 13:29:37 2007 New Revision: 43835 URL: http://llvm.org/viewvc/llvm-project?rev=43835view=rev Log: Hack: Force alignment to 1 in all cases. Thanks Bill, please add a fixme though and file a bugzilla about this. The bugzilla should point to your new testcase. -Chris Modified: llvm-gcc-4.0/trunk/gcc/llvm-convert.cpp Modified: llvm-gcc-4.0/trunk/gcc/llvm-convert.cpp URL: http://llvm.org/viewvc/llvm-project/llvm-gcc-4.0/trunk/gcc/ llvm-convert.cpp?rev=43835r1=43834r2=43835view=diff == --- llvm-gcc-4.0/trunk/gcc/llvm-convert.cpp (original) +++ llvm-gcc-4.0/trunk/gcc/llvm-convert.cpp Wed Nov 7 13:29:37 2007 @@ -1297,7 +1297,7 @@ CastToType(Instruction::BitCast, DestPtr, SBP), CastToType(Instruction::BitCast, SrcPtr, SBP), CastToSIntType(Size, IntPtr), -ConstantInt::get(Type::Int32Ty, Align) +ConstantInt::get(Type::Int32Ty, 1) }; Intrinsic::ID IID = @@ -1329,7 +1329,7 @@ CastToType(Instruction::BitCast, DestPtr, SBP), CastToSIntType(SrcVal, Type::Int8Ty), CastToSIntType(Size, IntPtr), -ConstantInt::get(Type::Int32Ty, Align) +ConstantInt::get(Type::Int32Ty, 1) }; Intrinsic::ID IID = ___ llvm-commits mailing list llvm-commits@cs.uiuc.edu http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits ___ llvm-commits mailing list llvm-commits@cs.uiuc.edu http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits
[llvm-commits] [llvm] r43837 - in /llvm/trunk/win32: Analysis/ Archive/ AsmParser/ Bitcode/ CBackend/ CodeGen/ ExecutionEngine/ Fibonacci/ Linker/ Support/ System/ TableGen/ Target/ Transforms/ VMCore
Author: hkaiser Date: Wed Nov 7 13:34:09 2007 New Revision: 43837 URL: http://llvm.org/viewvc/llvm-project?rev=43837view=rev Log: Updated VC++ build system Modified: llvm/trunk/win32/Analysis/Analysis.vcproj llvm/trunk/win32/Archive/Archive.vcproj llvm/trunk/win32/AsmParser/AsmParser.vcproj llvm/trunk/win32/Bitcode/Bitcode.vcproj llvm/trunk/win32/CBackend/CBackend.vcproj llvm/trunk/win32/CodeGen/CodeGen.vcproj llvm/trunk/win32/ExecutionEngine/ExecutionEngine.vcproj llvm/trunk/win32/Fibonacci/Fibonacci.vcproj llvm/trunk/win32/Linker/Linker.vcproj llvm/trunk/win32/Support/Support.vcproj llvm/trunk/win32/System/System.vcproj llvm/trunk/win32/TableGen/TableGen.vcproj llvm/trunk/win32/Target/Target.vcproj llvm/trunk/win32/Transforms/Transforms.vcproj llvm/trunk/win32/VMCore/VMCore.vcproj llvm/trunk/win32/bugpoint/bugpoint.vcproj llvm/trunk/win32/llc/llc.vcproj llvm/trunk/win32/lli/lli.vcproj llvm/trunk/win32/llvm-ar/llvm-ar.vcproj llvm/trunk/win32/llvm-as/llvm-as.vcproj llvm/trunk/win32/llvm-bcanalyzer/llvm-bcanalyzer.vcproj llvm/trunk/win32/llvm-dis/llvm-dis.vcproj llvm/trunk/win32/llvm-ld/llvm-ld.vcproj llvm/trunk/win32/llvm-link/llvm-link.vcproj llvm/trunk/win32/llvm-nm/llvm-nm.vcproj llvm/trunk/win32/llvm-prof/llvm-prof.vcproj llvm/trunk/win32/llvm-ranlib/llvm-ranlib.vcproj llvm/trunk/win32/opt/opt.vcproj llvm/trunk/win32/x86/x86.vcproj Modified: llvm/trunk/win32/Analysis/Analysis.vcproj URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/win32/Analysis/Analysis.vcproj?rev=43837r1=43836r2=43837view=diff == --- llvm/trunk/win32/Analysis/Analysis.vcproj (original) +++ llvm/trunk/win32/Analysis/Analysis.vcproj Wed Nov 7 13:34:09 2007 @@ -41,7 +41,7 @@ Name=VCCLCompilerTool Optimization=0 AdditionalIncludeDirectories=..\..\include;.. - PreprocessorDefinitions=_CRT_SECURE_NO_DEPRECATE;_CRT_NONSTDC_NO_WARNINGS;WIN32;_DEBUG;_LIB;__STDC_LIMIT_MACROS + PreprocessorDefinitions=_CRT_SECURE_NO_DEPRECATE;_CRT_SECURE_NO_WARNINGS;_SCL_SECURE_NO_WARNINGS;_CRT_NONSTDC_NO_WARNINGS;WIN32;_DEBUG;_LIB;__STDC_LIMIT_MACROS StringPooling=true MinimalRebuild=true BasicRuntimeChecks=3 @@ -111,7 +111,7 @@ Tool Name=VCCLCompilerTool AdditionalIncludeDirectories=..\..\include;.. - PreprocessorDefinitions=_CRT_SECURE_NO_DEPRECATE;_CRT_NONSTDC_NO_WARNINGS;WIN32;NDEBUG;_LIB;__STDC_LIMIT_MACROS + PreprocessorDefinitions=_CRT_SECURE_NO_DEPRECATE;_CRT_SECURE_NO_WARNINGS;_SCL_SECURE_NO_WARNINGS;_CRT_NONSTDC_NO_WARNINGS;WIN32;NDEBUG;_LIB;__STDC_LIMIT_MACROS StringPooling=true RuntimeLibrary=2 ForceConformanceInForLoopScope=true Modified: llvm/trunk/win32/Archive/Archive.vcproj URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/win32/Archive/Archive.vcproj?rev=43837r1=43836r2=43837view=diff == --- llvm/trunk/win32/Archive/Archive.vcproj (original) +++ llvm/trunk/win32/Archive/Archive.vcproj Wed Nov 7 13:34:09 2007 @@ -41,7 +41,7 @@ Name=VCCLCompilerTool Optimization=0 AdditionalIncludeDirectories=..\..\include;.. - PreprocessorDefinitions=_CRT_SECURE_NO_DEPRECATE;WIN32;_DEBUG;_LIB;__STDC_LIMIT_MACROS + PreprocessorDefinitions=_CRT_SECURE_NO_DEPRECATE;_CRT_SECURE_NO_WARNINGS;_SCL_SECURE_NO_WARNINGS;_CRT_NONSTDC_NO_WARNINGS;WIN32;_DEBUG;_LIB;__STDC_LIMIT_MACROS StringPooling=true MinimalRebuild=true BasicRuntimeChecks=3 @@ -111,7 +111,7 @@ Tool Name=VCCLCompilerTool AdditionalIncludeDirectories=..\..\include;.. - PreprocessorDefinitions=_CRT_SECURE_NO_DEPRECATE;WIN32;NDEBUG;_LIB;__STDC_LIMIT_MACROS + PreprocessorDefinitions=_CRT_SECURE_NO_DEPRECATE;_CRT_SECURE_NO_WARNINGS;_SCL_SECURE_NO_WARNINGS;_CRT_NONSTDC_NO_WARNINGS;WIN32;NDEBUG;_LIB;__STDC_LIMIT_MACROS StringPooling=true RuntimeLibrary=2 ForceConformanceInForLoopScope=true Modified: llvm/trunk/win32/AsmParser/AsmParser.vcproj URL:
[llvm-commits] [llvm-gcc-4.0] r43840 - /llvm-gcc-4.0/tags/llvm-gcc-1200-21/
Author: void Date: Wed Nov 7 13:41:16 2007 New Revision: 43840 URL: http://llvm.org/viewvc/llvm-project?rev=43840view=rev Log: Creating llvm-gcc-1200-21 branch Added: llvm-gcc-4.0/tags/llvm-gcc-1200-21/ - copied from r43839, llvm-gcc-4.0/trunk/ ___ llvm-commits mailing list llvm-commits@cs.uiuc.edu http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits
[llvm-commits] [llvm] r43836 - /llvm/trunk/include/llvm/Target/TargetLowering.h
Author: hkaiser Date: Wed Nov 7 13:33:31 2007 New Revision: 43836 URL: http://llvm.org/viewvc/llvm-project?rev=43836view=rev Log: Fixed compilation errors on VC++. Modified: llvm/trunk/include/llvm/Target/TargetLowering.h Modified: llvm/trunk/include/llvm/Target/TargetLowering.h URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/include/llvm/Target/TargetLowering.h?rev=43836r1=43835r2=43836view=diff == --- llvm/trunk/include/llvm/Target/TargetLowering.h (original) +++ llvm/trunk/include/llvm/Target/TargetLowering.h Wed Nov 7 13:33:31 2007 @@ -848,6 +848,7 @@ virtual const TargetSubtarget *getSubtarget() { assert(0 Not Implemented); +return NULL;// this is here to silence compiler errors } //======// // Lowering methods - These methods must be implemented by targets so that @@ -891,6 +892,7 @@ SDOperand Source, unsigned Size, unsigned Align, SelectionDAG DAG) { assert(0 Not Implemented); +return SDOperand(); // this is here to silence compiler errors } ___ llvm-commits mailing list llvm-commits@cs.uiuc.edu http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits
Re: [llvm-commits] [llvm-gcc-4.0] r43835 - /llvm-gcc-4.0/trunk/gcc/llvm-convert.cpp
On Nov 7, 2007 11:51 AM, Chris Lattner [EMAIL PROTECTED] wrote: On Nov 7, 2007, at 11:29 AM, Bill Wendling wrote: Author: void Date: Wed Nov 7 13:29:37 2007 New Revision: 43835 URL: http://llvm.org/viewvc/llvm-project?rev=43835view=rev Log: Hack: Force alignment to 1 in all cases. Thanks Bill, please add a fixme though and file a bugzilla about this. The bugzilla should point to your new testcase. Done: PR1781 -bw ___ llvm-commits mailing list llvm-commits@cs.uiuc.edu http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits
Re: [llvm-commits] RE [llvm] r43805 - /llvm/trunk/lib/CodeGen/StrongPHIElimination.cpp
On Nov 6, 2007, at 11:26 PM, Owen Anderson wrote: Evan, I may end up using a BitVector or SparseBitVector in the future. I was just going with an std::set for simplicity until I'm sure I won't be changing it further. Ok, but SmallPtrSet and SmallSet behaves just like std::set except it's not horribly slow. :-) By the way, could you check that isLiveIn() and isLiveOut() are correctly? I _think_ I got VarInfo figured out, but I'm not confident. isLiveIn() looks wrong. I think you just need to check if DefInst is in the given MBB, if not than it has to be livein. For isLiveOut(), you need to check 1) if it's completely live through, 2) if it is used in the MBB and it's not killed. You may want to add UsedBlocks back to VarInfo. I removed it in r36250 because it wasn't being used. Evan --Owen___ llvm-commits mailing list llvm-commits@cs.uiuc.edu http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits ___ llvm-commits mailing list llvm-commits@cs.uiuc.edu http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits
Re: [llvm-commits] [llvm] r43421 - in /llvm/trunk: include/llvm/Support/Alignment.h lib/CodeGen/SelectionDAG/DAGCombiner.cpp lib/CodeGen/SelectionDAG/LegalizeDAG.cpp lib/CodeGen/SelectionDAG/LegalizeD
On Nov 7, 2007, at 12:25 AM, Duncan Sands wrote: Hi Chris, instead of introducing a new header file for this, would it make sense to merge into MathExtras.h? I considered that but (1) it would pull in the rest of MathExtras, for some compile time cost (maybe tiny) and (2) it would need to have a math name (like pow2_gcd), which would make the use of it more obscure. Which is more readable: MinAlign(Align, Offset) or pow2_gcd(Align, Offset) ? That said, I'm happy to put it in MathExtras if you think that better. I'm fine with naming it MinAlign in MathExtras.h, I don't think the compile time cost is an issue. Thanks! -Chris ___ llvm-commits mailing list llvm-commits@cs.uiuc.edu http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits
Re: [llvm-commits] [llvm-gcc-4.2] r43399 - /llvm-gcc-4.2/trunk/gcc/llvm-convert.cpp
On Nov 7, 2007, at 12:46 AM, Duncan Sands wrote: Hi Bill, the following testcase shows another problem: struct A { int a[1024]; }; void g(struct A *a, struct A *b) { *a = *b; } struct A c; int main(void) { g(c, c); } Note that llvm-gcc generates a memcpy for the *a = *b assignment, but it should be memmove since *a and *b may be the same (as they are in this case). While that's nonstandard, it's hard to imagine a memcpy implementation that would screw it up. But they can partially overlap: struct A { int a[1024]; } struct B { int x; struct A y; }; union C { struct A x; struct B y; } void g(struct A* a, struct A* b) { *a = *b; } union C u; main(void) { g(u.x, u.y.y); I fixed this for structure return values a while back (43324) but you're right that the problem is more general. ___ llvm-commits mailing list llvm-commits@cs.uiuc.edu http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits
Re: [llvm-commits] [llvm-gcc-4.0] r43842 - /llvm-gcc-4.0/trunk/gcc/llvm-convert.cpp
URL: http://llvm.org/viewvc/llvm-project?rev=43842view=rev Log: Add FIXME line. Thanks, please add a short comment about what the actual problem is, and mention the bugzilla. :) Also, Bill, after Duncan has tested and commits his patch to 4.2, can you please backport it to 4.0? Thanks! -Chris Modified: llvm-gcc-4.0/trunk/gcc/llvm-convert.cpp Modified: llvm-gcc-4.0/trunk/gcc/llvm-convert.cpp URL: http://llvm.org/viewvc/llvm-project/llvm-gcc-4.0/trunk/gcc/ llvm-convert.cpp?rev=43842r1=43841r2=43842view=diff == --- llvm-gcc-4.0/trunk/gcc/llvm-convert.cpp (original) +++ llvm-gcc-4.0/trunk/gcc/llvm-convert.cpp Wed Nov 7 14:59:30 2007 @@ -1297,7 +1297,7 @@ CastToType(Instruction::BitCast, DestPtr, SBP), CastToType(Instruction::BitCast, SrcPtr, SBP), CastToSIntType(Size, IntPtr), -ConstantInt::get(Type::Int32Ty, 1) +ConstantInt::get(Type::Int32Ty, 1) // FIXME: Hardcoding 1 here is a hack. }; Intrinsic::ID IID = @@ -1329,7 +1329,7 @@ CastToType(Instruction::BitCast, DestPtr, SBP), CastToSIntType(SrcVal, Type::Int8Ty), CastToSIntType(Size, IntPtr), -ConstantInt::get(Type::Int32Ty, 1) +ConstantInt::get(Type::Int32Ty, 1) // FIXME: Hardcoding 1 here is a hack. }; Intrinsic::ID IID = ___ llvm-commits mailing list llvm-commits@cs.uiuc.edu http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits ___ llvm-commits mailing list llvm-commits@cs.uiuc.edu http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits
[llvm-commits] [llvm] r43844 - in /llvm/trunk/lib/Target/X86: X86RegisterInfo.cpp X86RegisterInfo.td
Author: johannes Date: Wed Nov 7 15:48:35 2007 New Revision: 43844 URL: http://llvm.org/viewvc/llvm-project?rev=43844view=rev Log: Complete conditionalization of Dwarf reg numbers. Would somebody not on Darwin please make sure this doesn't break anything. Exception handling failures would be the most likely symptom. Modified: llvm/trunk/lib/Target/X86/X86RegisterInfo.cpp llvm/trunk/lib/Target/X86/X86RegisterInfo.td Modified: llvm/trunk/lib/Target/X86/X86RegisterInfo.cpp URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Target/X86/X86RegisterInfo.cpp?rev=43844r1=43843r2=43844view=diff == --- llvm/trunk/lib/Target/X86/X86RegisterInfo.cpp (original) +++ llvm/trunk/lib/Target/X86/X86RegisterInfo.cpp Wed Nov 7 15:48:35 2007 @@ -657,15 +657,55 @@ // getDwarfRegNum - This function maps LLVM register identifiers to the // Dwarf specific numbering, used in debug info and exception tables. // The registers are given basic dwarf numbers in the .td files, -// which are collected by TableGen into X86GenRegisterInfo::getDwarfRegNum. -// This wrapper allows for target-specific overrides. +// which are for the 64-bit target. These are collected by TableGen +// into X86GenRegisterInfo::getDwarfRegNum and overridden here for +// other targets. +// FIXME: Comments in gcc indicate that Darwin uses different numbering +// for debug info and exception handling info:( The numbering here is +// for exception handling. + int X86RegisterInfo::getDwarfRegNum(unsigned RegNo) const { int n = X86GenRegisterInfo::getDwarfRegNum(RegNo); const X86Subtarget *Subtarget = TM.getSubtargetX86Subtarget(); - if (Subtarget-isDarwin) { -// ESP and EBP are switched. -if (n==4) return 5; -if (n==5) return 4; + if (!Subtarget-is64Bit()) { +// Numbers are all different for 32-bit. Further, some of them +// differ between Darwin and other targets. +switch (n) { +default: assert(0 Invalid argument to getDwarfRegNum); + return n; +case 0: return 0; // ax +case 1: return 2; // dx +case 2: return 1; // cx +case 3: return 3; // bx +case 4: return 6; // si +case 5: return 7; // di +case 6: return (Subtarget-isDarwin) ? 4 : 5; // bp +case 7: return (Subtarget-isDarwin) ? 5 : 4; // sp + +case 8: case 9: case 10: case 11: // r8..r15 +case 12: case 13: case 14: case 15: + assert(0 Invalid register in 32-bit mode); + return n; + +case 16: return 8; // ip + +case 17: case 18: case 19: case 20: // xmm0..xmm7 +case 21: case 22: case 23: case 24: + return n+4; + +case 25: case 26: case 27: case 28: // xmm8..xmm15 +case 29: case 30: case 31: case 32: + assert(0 Invalid register in 32-bit mode); + return n; + +case 33: case 34: case 35: case 36: // st0..st7 +case 37: case 38: case 39: case 40: + return (Subtarget-isDarwin) ? n-21 : n-22; + +case 41: case 42: case 43: case 44: // mm0..mm7 +case 45: case 46: case 47: case 48: + return n-12; +} } return n; } Modified: llvm/trunk/lib/Target/X86/X86RegisterInfo.td URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Target/X86/X86RegisterInfo.td?rev=43844r1=43843r2=43844view=diff == --- llvm/trunk/lib/Target/X86/X86RegisterInfo.td (original) +++ llvm/trunk/lib/Target/X86/X86RegisterInfo.td Wed Nov 7 15:48:35 2007 @@ -23,12 +23,17 @@ // because the register file generator is smart enough to figure out that // AL aliases AX if we tell it that AX aliased AL (for example). - // FIXME: X86-64 have different Dwarf numbers. + // Dwarf numbering is different for 32-bit and 64-bit, and there are + // variations by target as well. The numbers here are for 64-bit. + // They are altered by X86RegisterInfo::getDwarfRegNum at runtime. Note + // that we can't assign the same number here to different registers, as + // getDwarfRegNum has only the number here to work with. + // 8-bit registers // Low registers def AL : RegisterAL, DwarfRegNum0; - def CL : RegisterCL, DwarfRegNum1; - def DL : RegisterDL, DwarfRegNum2; + def DL : RegisterDL, DwarfRegNum1; + def CL : RegisterCL, DwarfRegNum2; def BL : RegisterBL, DwarfRegNum3; // X86-64 only @@ -47,20 +52,20 @@ // High registers X86-32 only def AH : RegisterAH, DwarfRegNum0; - def CH : RegisterCH, DwarfRegNum1; - def DH : RegisterDH, DwarfRegNum2; + def DH : RegisterDH, DwarfRegNum1; + def CH : RegisterCH, DwarfRegNum2; def BH : RegisterBH, DwarfRegNum3; // 16-bit registers def AX :
Re: [llvm-commits] [llvm] r43844 - in /llvm/trunk/lib/Target/X86: X86RegisterInfo.cpp X86RegisterInfo.td
Dale, Complete conditionalization of Dwarf reg numbers. This looks pretty hackish. The numbers used before were definitely correct for x86-32/linux. I dunno about darwin, but it looks like turning everything on darwin to be default implementation is not a good approach. :) And, if you need to conditionalize depending on target, table approach (like in i386.h) will be definitely better, otherwise we'll end with spaghetti-like code, when all supported targets will be in place. -- With best regards, Anton Korobeynikov. Faculty of Mathematics Mechanics, Saint Petersburg State University. ___ llvm-commits mailing list llvm-commits@cs.uiuc.edu http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits
[llvm-commits] [llvm] r43845 - in /llvm/trunk/include/llvm/Bitcode: Deserialize.h Serialize.h
Author: kremenek Date: Wed Nov 7 16:30:29 2007 New Revision: 43845 URL: http://llvm.org/viewvc/llvm-project?rev=43845view=rev Log: Added methods to batch emit and deserialize owned pointers. This allows to group the pointer IDs together in the bitstream before their referenced contents (which will lend itself to more efficient encoding). Modified: llvm/trunk/include/llvm/Bitcode/Deserialize.h llvm/trunk/include/llvm/Bitcode/Serialize.h Modified: llvm/trunk/include/llvm/Bitcode/Deserialize.h URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/include/llvm/Bitcode/Deserialize.h?rev=43845r1=43844r2=43845view=diff == --- llvm/trunk/include/llvm/Bitcode/Deserialize.h (original) +++ llvm/trunk/include/llvm/Bitcode/Deserialize.h Wed Nov 7 16:30:29 2007 @@ -117,15 +117,15 @@ template typename T inline T* ReadOwnedPtr(bool AutoRegister = true) { -unsigned PtrId = ReadInt(); +unsigned PtrID = ReadInt(); -if (PtrId == 0) +if (!PtrID) return NULL; T* x = SerializeTraitT::Materialize(*this); - + if (AutoRegister) - RegisterPtr(PtrId,x); + RegisterPtr(PtrID,x); return x; } @@ -135,6 +135,39 @@ Ptr = ReadOwnedPtrT(AutoRegister); } + template typename T1, typename T2 + void BatchReadOwnedPtrs(T1* P1, T2* P2, + bool A1=true, bool A2=true) { + +unsigned ID1 = ReadInt(); +unsigned ID2 = ReadInt(); + +P1 = (ID1) ? SerializeTraitT1::Materialize(*this) : NULL; +if (ID1 A1) RegisterPtr(ID1,P1); + +P2 = (ID2) ? SerializeTraitT2::Materialize(*this) : NULL; +if (ID2 A2) RegisterPtr(ID2,P2); + } + + template typename T1, typename T2, typename T3 + void BatchReadOwnedPtrs(T1* P1, T2* P2, T3* P3, + bool A1=true, bool A2=true, bool A3=true) { + +unsigned ID1 = ReadInt(); +unsigned ID2 = ReadInt(); +unsigned ID3 = ReadInt(); + +P1 = (ID1) ? SerializeTraitT1::Materialize(*this) : NULL; +if (ID1 A1) RegisterPtr(ID1,P1); + +P2 = (ID2) ? SerializeTraitT2::Materialize(*this) : NULL; +if (ID2 A2) RegisterPtr(ID2,P2); + +P3 = (ID3) ? SerializeTraitT2::Materialize(*this) : NULL; +if (ID3 A3) RegisterPtr(ID3,P3); + } + + template typename T void ReadPtr(T* PtrRef, bool AllowBackpatch = true) { ReadUIntPtr(reinterpret_castuintptr_t(PtrRef), AllowBackpatch); Modified: llvm/trunk/include/llvm/Bitcode/Serialize.h URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/include/llvm/Bitcode/Serialize.h?rev=43845r1=43844r2=43845view=diff == --- llvm/trunk/include/llvm/Bitcode/Serialize.h (original) +++ llvm/trunk/include/llvm/Bitcode/Serialize.h Wed Nov 7 16:30:29 2007 @@ -54,6 +54,36 @@ EmitPtr(ptr); if (ptr) SerializeTraitT::Emit(*this,*ptr); } + + template typename T1, typename T2 + void BatchEmitOwnedPtrs(T1* p1, T2* p2) { +EmitPtr(p1); +EmitPtr(p2); +if (p1) SerializeTraitT1::Emit(*this,*p1); +if (p2) SerializeTraitT2::Emit(*this,*p2); + } + + template typename T1, typename T2, typename T3 + void BatchEmitOwnedPtrs(T1* p1, T2* p2, T3* p3) { +EmitPtr(p1); +EmitPtr(p2); +EmitPtr(p3); +if (p1) SerializeTraitT1::Emit(*this,*p1); +if (p2) SerializeTraitT2::Emit(*this,*p2); +if (p3) SerializeTraitT3::Emit(*this,*p3); + } + + template typename T1, typename T2, typename T3, typename T4 + void BatchEmitOwnedPtrs(T1* p1, T2* p2, T3* p3, T4 p4) { +EmitPtr(p1); +EmitPtr(p2); +EmitPtr(p3); +EmitPtr(p4); +if (p1) SerializeTraitT1::Emit(*this,*p1); +if (p2) SerializeTraitT2::Emit(*this,*p2); +if (p3) SerializeTraitT3::Emit(*this,*p3); +if (p4) SerializeTraitT4::Emit(*this,*p4); + } void FlushRecord() { if (inRecord()) EmitRecord(); } ___ llvm-commits mailing list llvm-commits@cs.uiuc.edu http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits
[llvm-commits] [poolalloc] r43851 - /poolalloc/branches/SVA/README
Author: criswell Date: Wed Nov 7 17:14:07 2007 New Revision: 43851 URL: http://llvm.org/viewvc/llvm-project?rev=43851view=rev Log: Testing another commit and reverting previous change. Modified: poolalloc/branches/SVA/README Modified: poolalloc/branches/SVA/README URL: http://llvm.org/viewvc/llvm-project/poolalloc/branches/SVA/README?rev=43851r1=43850r2=43851view=diff == --- poolalloc/branches/SVA/README (original) +++ poolalloc/branches/SVA/README Wed Nov 7 17:14:07 2007 @@ -69,4 +69,3 @@ about LLVM. The list is low volume. You can subscribe to it at http://mail.cs.uiuc.edu/mailman/listinfo/llvmdev. - ___ llvm-commits mailing list llvm-commits@cs.uiuc.edu http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits
[llvm-commits] [poolalloc] r43850 - /poolalloc/branches/SVA/README
Author: criswell Date: Wed Nov 7 17:13:44 2007 New Revision: 43850 URL: http://llvm.org/viewvc/llvm-project?rev=43850view=rev Log: Test commit. Modified: poolalloc/branches/SVA/README Modified: poolalloc/branches/SVA/README URL: http://llvm.org/viewvc/llvm-project/poolalloc/branches/SVA/README?rev=43850r1=43849r2=43850view=diff == --- poolalloc/branches/SVA/README (original) +++ poolalloc/branches/SVA/README Wed Nov 7 17:13:44 2007 @@ -69,3 +69,4 @@ about LLVM. The list is low volume. You can subscribe to it at http://mail.cs.uiuc.edu/mailman/listinfo/llvmdev. + ___ llvm-commits mailing list llvm-commits@cs.uiuc.edu http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits
[llvm-commits] [llvm] r43852 - in /llvm/trunk/include/llvm/Bitcode: Deserialize.h Serialize.h
Author: kremenek Date: Wed Nov 7 17:18:40 2007 New Revision: 43852 URL: http://llvm.org/viewvc/llvm-project?rev=43852view=rev Log: Added version of BatchEmitOwnedPtrs and BatchReadOwnedPtrs that emits/reads an array of pointers of the same type. Modified: llvm/trunk/include/llvm/Bitcode/Deserialize.h llvm/trunk/include/llvm/Bitcode/Serialize.h Modified: llvm/trunk/include/llvm/Bitcode/Deserialize.h URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/include/llvm/Bitcode/Deserialize.h?rev=43852r1=43851r2=43852view=diff == --- llvm/trunk/include/llvm/Bitcode/Deserialize.h (original) +++ llvm/trunk/include/llvm/Bitcode/Deserialize.h Wed Nov 7 17:18:40 2007 @@ -166,6 +166,18 @@ P3 = (ID3) ? SerializeTraitT2::Materialize(*this) : NULL; if (ID3 A3) RegisterPtr(ID3,P3); } + + template typename T + void BatchReadOwnedPtrs(unsigned NumPtrs, T** Ptrs) { +llvm::SmallVectorunsigned,20 PtrIDs; +PtrIDs.reserve(NumPtrs); + +for (unsigned i = 0; i NumPtrs; ++i) + PtrIDs.push_back(ReadInt()); + +for (unsigned i = 0; i NumPtrs; ++i) + Ptrs[i] = PtrIDs[i] ? SerializeTraitT::Materialize(*this) : NULL; + } template typename T Modified: llvm/trunk/include/llvm/Bitcode/Serialize.h URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/include/llvm/Bitcode/Serialize.h?rev=43852r1=43851r2=43852view=diff == --- llvm/trunk/include/llvm/Bitcode/Serialize.h (original) +++ llvm/trunk/include/llvm/Bitcode/Serialize.h Wed Nov 7 17:18:40 2007 @@ -85,6 +85,15 @@ if (p4) SerializeTraitT4::Emit(*this,*p4); } + template typename T + void BatchEmitOwnedPtrs(unsigned NumPtrs, T** Ptrs) { +for (unsigned i = 0; i NumPtrs; ++i) + EmitPtr(Ptrs[i]); + +for (unsigned i = 0; i NumPtrs; ++i) + if (Ptrs[i]) SerializeTraitT::Emit(*this,Ptrs[i]); + } + void FlushRecord() { if (inRecord()) EmitRecord(); } void EnterBlock(unsigned BlockID = 8, unsigned CodeLen = 3); ___ llvm-commits mailing list llvm-commits@cs.uiuc.edu http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits
[llvm-commits] [llvm] r43853 - /llvm/trunk/include/llvm/Bitcode/Serialize.h
Author: kremenek Date: Wed Nov 7 17:32:06 2007 New Revision: 43853 URL: http://llvm.org/viewvc/llvm-project?rev=43853view=rev Log: Fixed bug where we did not properly serialize owned objects due to a missing dereference. Modified: llvm/trunk/include/llvm/Bitcode/Serialize.h Modified: llvm/trunk/include/llvm/Bitcode/Serialize.h URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/include/llvm/Bitcode/Serialize.h?rev=43853r1=43852r2=43853view=diff == --- llvm/trunk/include/llvm/Bitcode/Serialize.h (original) +++ llvm/trunk/include/llvm/Bitcode/Serialize.h Wed Nov 7 17:32:06 2007 @@ -91,7 +91,7 @@ EmitPtr(Ptrs[i]); for (unsigned i = 0; i NumPtrs; ++i) - if (Ptrs[i]) SerializeTraitT::Emit(*this,Ptrs[i]); + if (Ptrs[i]) SerializeTraitT::Emit(*this,*Ptrs[i]); } void FlushRecord() { if (inRecord()) EmitRecord(); } ___ llvm-commits mailing list llvm-commits@cs.uiuc.edu http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits
Re: [llvm-commits] [llvm-gcc-4.2] r43870 - in /llvm-gcc-4.2/trunk/gcc/testsuite/g++.dg/gomp: atomic-10.C atomic-3.C atomic-9.C barrier-1.C block-0.C critical-1.C flush-1.C for-10.C for-13.C for-4.C fo
I think gimple and tree-original are the only ones that llvm cares about. IIRC you don't care much past that (cgraph might be the only other one, but i doubt it). In 4.2 llvm-convert is operating on CFG gimple (this isn't true for 4.0), so dumps after cgraph construction seems to be also alive. -- With best regards, Anton Korobeynikov. Faculty of Mathematics Mechanics, Saint Petersburg State University. ___ llvm-commits mailing list llvm-commits@cs.uiuc.edu http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits
Re: [llvm-commits] [llvm-gcc-4.2] r43870 - in /llvm-gcc-4.2/trunk/gcc/testsuite/g++.dg/gomp: atomic-10.C atomic-3.C atomic-9.C barrier-1.C block-0.C critical-1.C flush-1.C for-10.C for-13.C for-4.C fo
On Nov 7, 2007, at 8:47 PM, Dale Johannesen wrote: // PR middle-end/28046 // { dg-do compile } // { dg-options -fopenmp -fdump-tree-gimple } +/* LLVM LOCAL test not applicable */ +/* { dg-require-fdump } */ does -fdump-tree-gimple not work? I thought were we running the gimplifier? So it does. That's annoying, I'll have to go through the -fdump options one by bloody one :( sorry, -Chris ___ llvm-commits mailing list llvm-commits@cs.uiuc.edu http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits
Re: [llvm-commits] [llvm-gcc-4.2] r43870 - in /llvm-gcc-4.2/trunk/gcc/testsuite/g++.dg/gomp: atomic-10.C atomic-3.C atomic-9.C barrier-1.C block-0.C critical-1.C flush-1.C for-10.C for-13.C for-4.C fo
// PR middle-end/28046 // { dg-do compile } // { dg-options -fopenmp -fdump-tree-gimple } +/* LLVM LOCAL test not applicable */ +/* { dg-require-fdump } */ does -fdump-tree-gimple not work? I thought were we running the gimplifier? So it does. That's annoying, I'll have to go through the -fdump options one by bloody one ___ llvm-commits mailing list llvm-commits@cs.uiuc.edu http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits
[llvm-commits] [poolalloc] r43878 - /poolalloc/branches/SVA/README
Author: criswell Date: Wed Nov 7 22:04:43 2007 New Revision: 43878 URL: http://llvm.org/viewvc/llvm-project?rev=43878view=rev Log: Test commit. Modified: poolalloc/branches/SVA/README Modified: poolalloc/branches/SVA/README URL: http://llvm.org/viewvc/llvm-project/poolalloc/branches/SVA/README?rev=43878r1=43877r2=43878view=diff == --- poolalloc/branches/SVA/README (original) +++ poolalloc/branches/SVA/README Wed Nov 7 22:04:43 2007 @@ -69,3 +69,4 @@ about LLVM. The list is low volume. You can subscribe to it at http://mail.cs.uiuc.edu/mailman/listinfo/llvmdev. + ___ llvm-commits mailing list llvm-commits@cs.uiuc.edu http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits
[llvm-commits] [llvm-gcc-4.2] r43876 - in /llvm-gcc-4.2/trunk/gcc/testsuite/gcc.dg/ipa: ipa-1.c ipa-2.c ipa-3.c ipa-4.c ipa-5.c
Author: johannes Date: Wed Nov 7 20:24:22 2007 New Revision: 43876 URL: http://llvm.org/viewvc/llvm-project?rev=43876view=rev Log: Disable more testcases. Modified: llvm-gcc-4.2/trunk/gcc/testsuite/gcc.dg/ipa/ipa-1.c llvm-gcc-4.2/trunk/gcc/testsuite/gcc.dg/ipa/ipa-2.c llvm-gcc-4.2/trunk/gcc/testsuite/gcc.dg/ipa/ipa-3.c llvm-gcc-4.2/trunk/gcc/testsuite/gcc.dg/ipa/ipa-4.c llvm-gcc-4.2/trunk/gcc/testsuite/gcc.dg/ipa/ipa-5.c Modified: llvm-gcc-4.2/trunk/gcc/testsuite/gcc.dg/ipa/ipa-1.c URL: http://llvm.org/viewvc/llvm-project/llvm-gcc-4.2/trunk/gcc/testsuite/gcc.dg/ipa/ipa-1.c?rev=43876r1=43875r2=43876view=diff == --- llvm-gcc-4.2/trunk/gcc/testsuite/gcc.dg/ipa/ipa-1.c (original) +++ llvm-gcc-4.2/trunk/gcc/testsuite/gcc.dg/ipa/ipa-1.c Wed Nov 7 20:24:22 2007 @@ -1,5 +1,7 @@ /* { dg-do compile } */ /* { dg-options -O3 -fipa-cp -fdump-ipa-cp -fno-early-inlining } */ +/* LLVM LOCAL test not applicable */ +/* { dg-require-fdump } */ /* { dg-skip-if PR 25442 { *-*-* } { -fpic -fPIC } { } } */ #include stdio.h Modified: llvm-gcc-4.2/trunk/gcc/testsuite/gcc.dg/ipa/ipa-2.c URL: http://llvm.org/viewvc/llvm-project/llvm-gcc-4.2/trunk/gcc/testsuite/gcc.dg/ipa/ipa-2.c?rev=43876r1=43875r2=43876view=diff == --- llvm-gcc-4.2/trunk/gcc/testsuite/gcc.dg/ipa/ipa-2.c (original) +++ llvm-gcc-4.2/trunk/gcc/testsuite/gcc.dg/ipa/ipa-2.c Wed Nov 7 20:24:22 2007 @@ -1,5 +1,7 @@ /* { dg-do compile } */ /* { dg-options -O3 -fipa-cp -fdump-ipa-cp -fno-early-inlining } */ +/* LLVM LOCAL test not applicable */ +/* { dg-require-fdump } */ /* { dg-skip-if PR 25442 { *-*-* } { -fpic -fPIC } { } } */ #include stdio.h Modified: llvm-gcc-4.2/trunk/gcc/testsuite/gcc.dg/ipa/ipa-3.c URL: http://llvm.org/viewvc/llvm-project/llvm-gcc-4.2/trunk/gcc/testsuite/gcc.dg/ipa/ipa-3.c?rev=43876r1=43875r2=43876view=diff == --- llvm-gcc-4.2/trunk/gcc/testsuite/gcc.dg/ipa/ipa-3.c (original) +++ llvm-gcc-4.2/trunk/gcc/testsuite/gcc.dg/ipa/ipa-3.c Wed Nov 7 20:24:22 2007 @@ -1,5 +1,7 @@ /* { dg-do compile } */ /* { dg-options -O3 -fipa-cp -fdump-ipa-cp -fno-early-inlining } */ +/* LLVM LOCAL test not applicable */ +/* { dg-require-fdump } */ /* { dg-skip-if PR 25442 { *-*-* } { -fpic -fPIC } { } } */ Modified: llvm-gcc-4.2/trunk/gcc/testsuite/gcc.dg/ipa/ipa-4.c URL: http://llvm.org/viewvc/llvm-project/llvm-gcc-4.2/trunk/gcc/testsuite/gcc.dg/ipa/ipa-4.c?rev=43876r1=43875r2=43876view=diff == --- llvm-gcc-4.2/trunk/gcc/testsuite/gcc.dg/ipa/ipa-4.c (original) +++ llvm-gcc-4.2/trunk/gcc/testsuite/gcc.dg/ipa/ipa-4.c Wed Nov 7 20:24:22 2007 @@ -1,5 +1,7 @@ /* { dg-do compile } */ /* { dg-options -O3 -fipa-cp -fdump-ipa-cp } */ +/* LLVM LOCAL test not applicable */ +/* { dg-require-fdump } */ /* { dg-skip-if PR 25442 { *-*-* } { -fpic -fPIC } { } } */ #include stdio.h Modified: llvm-gcc-4.2/trunk/gcc/testsuite/gcc.dg/ipa/ipa-5.c URL: http://llvm.org/viewvc/llvm-project/llvm-gcc-4.2/trunk/gcc/testsuite/gcc.dg/ipa/ipa-5.c?rev=43876r1=43875r2=43876view=diff == --- llvm-gcc-4.2/trunk/gcc/testsuite/gcc.dg/ipa/ipa-5.c (original) +++ llvm-gcc-4.2/trunk/gcc/testsuite/gcc.dg/ipa/ipa-5.c Wed Nov 7 20:24:22 2007 @@ -1,5 +1,7 @@ /* { dg-do compile } */ /* { dg-options -O3 -fipa-cp -fdump-ipa-cp -fno-early-inlining } */ +/* LLVM LOCAL test not applicable */ +/* { dg-require-fdump } */ /* { dg-skip-if PR 25442 { *-*-* } { -fpic -fPIC } { } } */ /* Float short constants. */ ___ llvm-commits mailing list llvm-commits@cs.uiuc.edu http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits
[llvm-commits] [llvm-gcc-4.2] r43874 - in /llvm-gcc-4.2/trunk/gcc/testsuite/gcc.apple: altivec-faltivec-1.c altivec-faltivec-2.c altivec-maltivec-1.c vect-ndist-1.c
Author: johannes Date: Wed Nov 7 20:12:13 2007 New Revision: 43874 URL: http://llvm.org/viewvc/llvm-project?rev=43874view=rev Log: Disable more tests for llvm. Modified: llvm-gcc-4.2/trunk/gcc/testsuite/gcc.apple/altivec-faltivec-1.c llvm-gcc-4.2/trunk/gcc/testsuite/gcc.apple/altivec-faltivec-2.c llvm-gcc-4.2/trunk/gcc/testsuite/gcc.apple/altivec-maltivec-1.c llvm-gcc-4.2/trunk/gcc/testsuite/gcc.apple/vect-ndist-1.c Modified: llvm-gcc-4.2/trunk/gcc/testsuite/gcc.apple/altivec-faltivec-1.c URL: http://llvm.org/viewvc/llvm-project/llvm-gcc-4.2/trunk/gcc/testsuite/gcc.apple/altivec-faltivec-1.c?rev=43874r1=43873r2=43874view=diff == --- llvm-gcc-4.2/trunk/gcc/testsuite/gcc.apple/altivec-faltivec-1.c (original) +++ llvm-gcc-4.2/trunk/gcc/testsuite/gcc.apple/altivec-faltivec-1.c Wed Nov 7 20:12:13 2007 @@ -3,6 +3,8 @@ /* For 64-bit we need 64-bit headers. */ /* { dg-xfail-if { powerpc*-*-darwin* } { -m64 } { } } */ /* { dg-options -mcpu=G3 -O3 -finline-limit= -faltivec -Wa,-force_cpusubtype_ALL -fdump-ipa-cgraph -S } */ +/* LLVM LOCAL test not applicable */ +/* { dg-require-fdump } */ /* Inliner should not inline AltiVec(tm) functions when -faltivec is on. */ /* rdar://problem/3837835 Selective inlining of functions that use Altivec */ #include Carbon/Carbon.h Modified: llvm-gcc-4.2/trunk/gcc/testsuite/gcc.apple/altivec-faltivec-2.c URL: http://llvm.org/viewvc/llvm-project/llvm-gcc-4.2/trunk/gcc/testsuite/gcc.apple/altivec-faltivec-2.c?rev=43874r1=43873r2=43874view=diff == --- llvm-gcc-4.2/trunk/gcc/testsuite/gcc.apple/altivec-faltivec-2.c (original) +++ llvm-gcc-4.2/trunk/gcc/testsuite/gcc.apple/altivec-faltivec-2.c Wed Nov 7 20:12:13 2007 @@ -3,6 +3,8 @@ /* For 64-bit we need 64-bit headers. */ /* { dg-xfail-if { powerpc*-*-darwin* } { -m64 } { } } */ /* { dg-options -O3 -finline-limit= -faltivec -Wa,-force_cpusubtype_ALL -fdump-ipa-cgraph -S } */ +/* LLVM LOCAL test not applicable */ +/* { dg-require-fdump } */ /* Inliner should inline always-inline AltiVec(tm) functions when -faltivec is on. */ /* rdar://problem/3837835 Selective inlining of functions that use Altivec */ #include Carbon/Carbon.h Modified: llvm-gcc-4.2/trunk/gcc/testsuite/gcc.apple/altivec-maltivec-1.c URL: http://llvm.org/viewvc/llvm-project/llvm-gcc-4.2/trunk/gcc/testsuite/gcc.apple/altivec-maltivec-1.c?rev=43874r1=43873r2=43874view=diff == --- llvm-gcc-4.2/trunk/gcc/testsuite/gcc.apple/altivec-maltivec-1.c (original) +++ llvm-gcc-4.2/trunk/gcc/testsuite/gcc.apple/altivec-maltivec-1.c Wed Nov 7 20:12:13 2007 @@ -3,6 +3,8 @@ /* For 64-bit we need 64-bit headers. */ /* { dg-xfail-if { powerpc*-*-darwin* } { -m64 } { } } */ /* { dg-options -O3 -finline-limit= -maltivec -Wa,-force_cpusubtype_ALL -fdump-ipa-cgraph -S -faltivec } */ +/* LLVM LOCAL test not applicable */ +/* { dg-require-fdump } */ /* Inliner should inline AltiVec(tm) functions normally when -maltivec is on. */ /* rdar://problem/3837835 Selective inlining of functions that use Altivec */ #include Carbon/Carbon.h Modified: llvm-gcc-4.2/trunk/gcc/testsuite/gcc.apple/vect-ndist-1.c URL: http://llvm.org/viewvc/llvm-project/llvm-gcc-4.2/trunk/gcc/testsuite/gcc.apple/vect-ndist-1.c?rev=43874r1=43873r2=43874view=diff == --- llvm-gcc-4.2/trunk/gcc/testsuite/gcc.apple/vect-ndist-1.c (original) +++ llvm-gcc-4.2/trunk/gcc/testsuite/gcc.apple/vect-ndist-1.c Wed Nov 7 20:12:13 2007 @@ -1,6 +1,8 @@ /* APPLE LOCAL file AV data dependence */ /* { dg-do run { target powerpc*-*-* } } */ /* { dg-options -O2 -ftree-vectorize -fdump-tree-vect-stats -maltivec } */ +/* LLVM LOCAL test not applicable */ +/* { dg-require-fdump } */ #include stdarg.h #include signal.h ___ llvm-commits mailing list llvm-commits@cs.uiuc.edu http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits
[llvm-commits] [llvm] r43885 - /llvm/trunk/lib/CodeGen/BreakCriticalMachineEdges.cpp
Author: resistor Date: Thu Nov 8 01:55:43 2007 New Revision: 43885 URL: http://llvm.org/viewvc/llvm-project?rev=43885view=rev Log: Add the majority of machine-level critical edge breaking pass. Most of this was written by Fernando, cleanup and updating to TOT by me. This still needs a bit of work, particularly to handle jump tables properly. Added: llvm/trunk/lib/CodeGen/BreakCriticalMachineEdges.cpp Added: llvm/trunk/lib/CodeGen/BreakCriticalMachineEdges.cpp URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/CodeGen/BreakCriticalMachineEdges.cpp?rev=43885view=auto == --- llvm/trunk/lib/CodeGen/BreakCriticalMachineEdges.cpp (added) +++ llvm/trunk/lib/CodeGen/BreakCriticalMachineEdges.cpp Thu Nov 8 01:55:43 2007 @@ -0,0 +1,131 @@ +//===--- BreakCriticalMachineEdges - Break critical edges -===// +// +// The LLVM Compiler Infrastructure +// +// This file was developed by Fernando Pereira and is distributed under +// the University of Illinois Open Source License. See LICENSE.TXT for details. +// +//===-===// +// +// Break all of the critical edges in the CFG by inserting a dummy basic block. +// This pass may be required by passes that cannot deal with critical edges. +// Notice that this pass invalidates the CFG, because the same BasicBlock is +// used as parameter for the src MachineBasicBlock and the new dummy +// MachineBasicBlock. +// +//===-===// + +#include llvm/CodeGen/Passes.h +#include llvm/CodeGen/MachineFunctionPass.h +#include llvm/CodeGen/MachineInstr.h +#include llvm/CodeGen/MachineJumpTableInfo.h +#include llvm/Target/TargetInstrInfo.h +#include llvm/Target/TargetMachine.h +#include llvm/ADT/Statistic.h +#include llvm/Support/Compiler.h + +using namespace llvm; + +namespace { + struct VISIBILITY_HIDDEN BreakCriticalMachineEdges : + public MachineFunctionPass { +static char ID; // Pass identification +BreakCriticalMachineEdges() : MachineFunctionPass((intptr_t)ID) {} + +bool runOnMachineFunction(MachineFunction Fn); +void splitCriticalEdge(MachineBasicBlock* A, MachineBasicBlock* B); + }; + + char BreakCriticalMachineEdges::ID = 0; + RegisterPassBreakCriticalMachineEdges X(critical-machine-edges, +Break critical machine code edges); +} + +//const PassInfo *llvm::BreakCriticalMachineEdgesID = X.getPassInfo(); + +void BreakCriticalMachineEdges::splitCriticalEdge(MachineBasicBlock* src, + MachineBasicBlock* dst) { + const BasicBlock* srcBB = src-getBasicBlock(); + + MachineBasicBlock* crit_mbb = new MachineBasicBlock(srcBB); + + // modify the llvm control flow graph + src-removeSuccessor(dst); + src-addSuccessor(crit_mbb); + crit_mbb-addSuccessor(dst); + + // insert the new block into the machine function. + src-getParent()-getBasicBlockList().insert(src-getParent()-end(), + crit_mbb); + + // insert a unconditional branch linking the new block to dst + const TargetMachine TM = src-getParent()-getTarget(); + const TargetInstrInfo* TII = TM.getInstrInfo(); + std::vectorMachineOperand emptyConditions; + TII-InsertBranch(*crit_mbb, dst, (MachineBasicBlock*)0, emptyConditions); + + // modify every branch in src that points to dst to point to the new + // machine basic block instead: + MachineBasicBlock::iterator mii = src-end(); + bool found_branch = false; + while (mii != src-begin()) { +mii--; +// if there are no more branches, finish the loop +if (!TII-isTerminatorInstr(mii-getOpcode())) { + break; +} + +// Scan the operands of this branch, replacing any uses of dst with +// crit_mbb. +for (unsigned i = 0, e = mii-getNumOperands(); i != e; ++i) { + MachineOperand mo = mii-getOperand(i); + if (mo.isMachineBasicBlock() + mo.getMachineBasicBlock() == dst) { +found_branch = true; +mo.setMachineBasicBlock(crit_mbb); + } +} + } + + // TODO: This is tentative. It may be necessary to fix this code. Maybe + // I am inserting too many gotos, but I am trusting that the asm printer + // will optimize the unnecessary gotos. + if(!found_branch) { +TII-InsertBranch(*src, crit_mbb, (MachineBasicBlock*)0, emptyConditions); + } + + /// Change all the phi functions in dst, so that the incoming block be + /// crit_mbb, instead of src + for(mii = dst-begin(); mii != dst-end(); mii++) { +/// the first instructions are always phi functions. +if(mii-getOpcode() != TargetInstrInfo::PHI) + break; + +for (unsigned u = 0; u != mii-getNumOperands(); ++u) + if (mii-getOperand(u).isMachineBasicBlock() +
Re: [llvm-commits] [llvm-gcc-4.2] r43870 - in /llvm-gcc-4.2/trunk/gcc/testsuite/g++.dg/gomp: atomic-10.C atomic-3.C atomic-9.C barrier-1.C block-0.C critical-1.C flush-1.C for-10.C for-13.C for-4.C fo
On Nov 7, 2007, at 9:36 PM, Anton Korobeynikov wrote: I think gimple and tree-original are the only ones that llvm cares about. IIRC you don't care much past that (cgraph might be the only other one, but i doubt it). In 4.2 llvm-convert is operating on CFG gimple (this isn't true for 4.0), so dumps after cgraph construction seems to be also alive. Ah ha. Thanks. -eric ___ llvm-commits mailing list llvm-commits@cs.uiuc.edu http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits
[llvm-commits] [llvm] r43867 - /llvm/trunk/include/llvm/CodeGen/LiveVariables.h
Author: resistor Date: Wed Nov 7 19:22:24 2007 New Revision: 43867 URL: http://llvm.org/viewvc/llvm-project?rev=43867view=rev Log: Oops, forgot to commit this file. Modified: llvm/trunk/include/llvm/CodeGen/LiveVariables.h Modified: llvm/trunk/include/llvm/CodeGen/LiveVariables.h URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/include/llvm/CodeGen/LiveVariables.h?rev=43867r1=43866r2=43867view=diff == --- llvm/trunk/include/llvm/CodeGen/LiveVariables.h (original) +++ llvm/trunk/include/llvm/CodeGen/LiveVariables.h Wed Nov 7 19:22:24 2007 @@ -83,6 +83,10 @@ /// BitVector AliveBlocks; +/// UsedBlocks - Set of blocks of which this value is actually used. This +/// is a bit set which uses the basic block number as an index. +BitVector UsedBlocks; + /// NumUses - Number of uses of this register across the entire function. /// unsigned NumUses; ___ llvm-commits mailing list llvm-commits@cs.uiuc.edu http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits
[llvm-commits] [llvm-gcc-4.2] r43863 - in /llvm-gcc-4.2/trunk/gcc/testsuite/lib: target-supports-dg.exp target-supports.exp
Author: johannes Date: Wed Nov 7 19:05:58 2007 New Revision: 43863 URL: http://llvm.org/viewvc/llvm-project?rev=43863view=rev Log: Add some entry points to support disabling tests that are irrelevant to LLVM. Modified: llvm-gcc-4.2/trunk/gcc/testsuite/lib/target-supports-dg.exp llvm-gcc-4.2/trunk/gcc/testsuite/lib/target-supports.exp Modified: llvm-gcc-4.2/trunk/gcc/testsuite/lib/target-supports-dg.exp URL: http://llvm.org/viewvc/llvm-project/llvm-gcc-4.2/trunk/gcc/testsuite/lib/target-supports-dg.exp?rev=43863r1=43862r2=43863view=diff == --- llvm-gcc-4.2/trunk/gcc/testsuite/lib/target-supports-dg.exp (original) +++ llvm-gcc-4.2/trunk/gcc/testsuite/lib/target-supports-dg.exp Wed Nov 7 19:05:58 2007 @@ -77,6 +77,19 @@ } } +# LLVM LOCAL begin +# Skip tests that use the -fdump options; llvm doesn't have these +# and never will. + +proc dg-require-fdump { args } { +if { [ is_llvm ] } { + upvar dg-do-what dg-do-what + set dg-do-what [list [lindex ${dg-do-what} 0] N P] +} +} + +# LLVM LOCAL end + # If this target does not support DLL attributes skip this test. proc dg-require-dll { args } { Modified: llvm-gcc-4.2/trunk/gcc/testsuite/lib/target-supports.exp URL: http://llvm.org/viewvc/llvm-project/llvm-gcc-4.2/trunk/gcc/testsuite/lib/target-supports.exp?rev=43863r1=43862r2=43863view=diff == --- llvm-gcc-4.2/trunk/gcc/testsuite/lib/target-supports.exp (original) +++ llvm-gcc-4.2/trunk/gcc/testsuite/lib/target-supports.exp Wed Nov 7 19:05:58 2007 @@ -307,6 +307,13 @@ verbose Profiling argument is $test_what 1 +# LLVM LOCAL begin +# We don't yet support profiling. +if { [ is_llvm ] } { + return 0 +} +# LLVM LOCAL end + # These conditions depend on the argument so examine them before # looking at the cache variable. @@ -1968,3 +1975,10 @@ return 0 } + +# LLVM LOCAL begin +# This is used to disable various tests for llvm. +proc is_llvm { } { + return 1 +} +# LLVM LOCAL end ___ llvm-commits mailing list llvm-commits@cs.uiuc.edu http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits
[llvm-commits] [llvm-gcc-4.2] r43871 - in /llvm-gcc-4.2/trunk/gcc/testsuite/g++.dg/tree-ssa: block1.C copyprop-1.C empty-1.C ivopts-1.C nothrow-1.C pointer-reference-alias.C pr14814.C pr15791-3.C pr15
Author: johannes Date: Wed Nov 7 19:58:22 2007 New Revision: 43871 URL: http://llvm.org/viewvc/llvm-project?rev=43871view=rev Log: Disable more testcases for llvm. Modified: llvm-gcc-4.2/trunk/gcc/testsuite/g++.dg/tree-ssa/block1.C llvm-gcc-4.2/trunk/gcc/testsuite/g++.dg/tree-ssa/copyprop-1.C llvm-gcc-4.2/trunk/gcc/testsuite/g++.dg/tree-ssa/empty-1.C llvm-gcc-4.2/trunk/gcc/testsuite/g++.dg/tree-ssa/ivopts-1.C llvm-gcc-4.2/trunk/gcc/testsuite/g++.dg/tree-ssa/nothrow-1.C llvm-gcc-4.2/trunk/gcc/testsuite/g++.dg/tree-ssa/pointer-reference-alias.C llvm-gcc-4.2/trunk/gcc/testsuite/g++.dg/tree-ssa/pr14814.C llvm-gcc-4.2/trunk/gcc/testsuite/g++.dg/tree-ssa/pr15791-3.C llvm-gcc-4.2/trunk/gcc/testsuite/g++.dg/tree-ssa/pr15791-4.C llvm-gcc-4.2/trunk/gcc/testsuite/g++.dg/tree-ssa/pr15791-5.C llvm-gcc-4.2/trunk/gcc/testsuite/g++.dg/tree-ssa/pr18178.C llvm-gcc-4.2/trunk/gcc/testsuite/g++.dg/tree-ssa/pr19807.C llvm-gcc-4.2/trunk/gcc/testsuite/g++.dg/tree-ssa/pr23948.C llvm-gcc-4.2/trunk/gcc/testsuite/g++.dg/tree-ssa/pr26406.C llvm-gcc-4.2/trunk/gcc/testsuite/g++.dg/tree-ssa/pr27090.C llvm-gcc-4.2/trunk/gcc/testsuite/g++.dg/tree-ssa/ssa-cast-1.C llvm-gcc-4.2/trunk/gcc/testsuite/g++.dg/tree-ssa/ssa-sra-1.C llvm-gcc-4.2/trunk/gcc/testsuite/g++.dg/tree-ssa/ssa-sra-2.C llvm-gcc-4.2/trunk/gcc/testsuite/g++.dg/tree-ssa/tmmti-2.C Modified: llvm-gcc-4.2/trunk/gcc/testsuite/g++.dg/tree-ssa/block1.C URL: http://llvm.org/viewvc/llvm-project/llvm-gcc-4.2/trunk/gcc/testsuite/g%2B%2B.dg/tree-ssa/block1.C?rev=43871r1=43870r2=43871view=diff == --- llvm-gcc-4.2/trunk/gcc/testsuite/g++.dg/tree-ssa/block1.C (original) +++ llvm-gcc-4.2/trunk/gcc/testsuite/g++.dg/tree-ssa/block1.C Wed Nov 7 19:58:22 2007 @@ -1,6 +1,8 @@ // PR 13764: We were inserting an extra body block in all functions, but // it's only really necessary for [cd]tors. // { dg-options -fdump-tree-gimple } +/* LLVM LOCAL test not applicable */ +/* { dg-require-fdump } */ void bar (void) { Modified: llvm-gcc-4.2/trunk/gcc/testsuite/g++.dg/tree-ssa/copyprop-1.C URL: http://llvm.org/viewvc/llvm-project/llvm-gcc-4.2/trunk/gcc/testsuite/g%2B%2B.dg/tree-ssa/copyprop-1.C?rev=43871r1=43870r2=43871view=diff == --- llvm-gcc-4.2/trunk/gcc/testsuite/g++.dg/tree-ssa/copyprop-1.C (original) +++ llvm-gcc-4.2/trunk/gcc/testsuite/g++.dg/tree-ssa/copyprop-1.C Wed Nov 7 19:58:22 2007 @@ -1,5 +1,7 @@ /* { dg-do compile } */ /* { dg-options -O -fdump-tree-dce2 } */ +/* LLVM LOCAL test not applicable */ +/* { dg-require-fdump } */ /* Verify that we can eliminate the useless conversions to/from const qualified pointer types Modified: llvm-gcc-4.2/trunk/gcc/testsuite/g++.dg/tree-ssa/empty-1.C URL: http://llvm.org/viewvc/llvm-project/llvm-gcc-4.2/trunk/gcc/testsuite/g%2B%2B.dg/tree-ssa/empty-1.C?rev=43871r1=43870r2=43871view=diff == --- llvm-gcc-4.2/trunk/gcc/testsuite/g++.dg/tree-ssa/empty-1.C (original) +++ llvm-gcc-4.2/trunk/gcc/testsuite/g++.dg/tree-ssa/empty-1.C Wed Nov 7 19:58:22 2007 @@ -1,5 +1,7 @@ /* { dg-do compile } */ /* { dg-options -O2 -fdump-tree-optimized } */ +/* LLVM LOCAL test not applicable */ +/* { dg-require-fdump } */ struct S {}; S bar (const S a) Modified: llvm-gcc-4.2/trunk/gcc/testsuite/g++.dg/tree-ssa/ivopts-1.C URL: http://llvm.org/viewvc/llvm-project/llvm-gcc-4.2/trunk/gcc/testsuite/g%2B%2B.dg/tree-ssa/ivopts-1.C?rev=43871r1=43870r2=43871view=diff == --- llvm-gcc-4.2/trunk/gcc/testsuite/g++.dg/tree-ssa/ivopts-1.C (original) +++ llvm-gcc-4.2/trunk/gcc/testsuite/g++.dg/tree-ssa/ivopts-1.C Wed Nov 7 19:58:22 2007 @@ -1,5 +1,7 @@ /* { dg-do compile } */ /* { dg-options -O2 -fdump-tree-ivopts } */ +/* LLVM LOCAL test not applicable */ +/* { dg-require-fdump } */ struct Foo { Foo() : s(1) {} Modified: llvm-gcc-4.2/trunk/gcc/testsuite/g++.dg/tree-ssa/nothrow-1.C URL: http://llvm.org/viewvc/llvm-project/llvm-gcc-4.2/trunk/gcc/testsuite/g%2B%2B.dg/tree-ssa/nothrow-1.C?rev=43871r1=43870r2=43871view=diff == --- llvm-gcc-4.2/trunk/gcc/testsuite/g++.dg/tree-ssa/nothrow-1.C (original) +++ llvm-gcc-4.2/trunk/gcc/testsuite/g++.dg/tree-ssa/nothrow-1.C Wed Nov 7 19:58:22 2007 @@ -1,5 +1,7 @@ /* { dg-do compile } */ /* { dg-options -O1 -fdump-tree-cfg } */ +/* LLVM LOCAL test not applicable */ +/* { dg-require-fdump } */ /* { dg-skip-if { *-*-* } { -fpic -fPIC } { } } */ double a; void t() Modified: llvm-gcc-4.2/trunk/gcc/testsuite/g++.dg/tree-ssa/pointer-reference-alias.C URL:
[llvm-commits] [llvm] r43855 - /llvm/trunk/include/llvm/Bitcode/Deserialize.h
Author: kremenek Date: Wed Nov 7 18:04:50 2007 New Revision: 43855 URL: http://llvm.org/viewvc/llvm-project?rev=43855view=rev Log: Revised implementation of BatchReadOwnedPtrs() that deserializes an array of pointers to not allocate a second array to contain the pointer ids. Fixed bug in the same member function where deserialized pointers were not being registered with the backpatcher. Modified: llvm/trunk/include/llvm/Bitcode/Deserialize.h Modified: llvm/trunk/include/llvm/Bitcode/Deserialize.h URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/include/llvm/Bitcode/Deserialize.h?rev=43855r1=43854r2=43855view=diff == --- llvm/trunk/include/llvm/Bitcode/Deserialize.h (original) +++ llvm/trunk/include/llvm/Bitcode/Deserialize.h Wed Nov 7 18:04:50 2007 @@ -168,17 +168,20 @@ } template typename T - void BatchReadOwnedPtrs(unsigned NumPtrs, T** Ptrs) { -llvm::SmallVectorunsigned,20 PtrIDs; -PtrIDs.reserve(NumPtrs); - -for (unsigned i = 0; i NumPtrs; ++i) - PtrIDs.push_back(ReadInt()); - + void BatchReadOwnedPtrs(unsigned NumPtrs, T** Ptrs, bool AutoRegister=true) { for (unsigned i = 0; i NumPtrs; ++i) - Ptrs[i] = PtrIDs[i] ? SerializeTraitT::Materialize(*this) : NULL; - } + reinterpret_castuintptr_t(Ptrs[i]) = ReadInt(); +for (unsigned i = 0; i NumPtrs; ++i) { + unsigned PtrID = reinterpret_castuintptr_t(Ptrs[i]); + T* p = PtrID ? SerializeTraitT::Materialize(*this) : NULL; + + if (PtrID AutoRegister) +RegisterPtr(PtrID,p); + + Ptrs[i] = p; +} + } template typename T void ReadPtr(T* PtrRef, bool AllowBackpatch = true) { ___ llvm-commits mailing list llvm-commits@cs.uiuc.edu http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits
Re: [llvm-commits] [llvm-gcc-4.0] r43842 - /llvm-gcc-4.0/trunk/gcc/llvm-convert.cpp
On Nov 7, 2007 1:47 PM, Chris Lattner [EMAIL PROTECTED] wrote: URL: http://llvm.org/viewvc/llvm-project?rev=43842view=rev Log: Add FIXME line. Thanks, please add a short comment about what the actual problem is, and mention the bugzilla. :) Okay. Also, Bill, after Duncan has tested and commits his patch to 4.2, can you please backport it to 4.0? Duncan mentioned that he was going to attempt this. :-) -bw ___ llvm-commits mailing list llvm-commits@cs.uiuc.edu http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits
[llvm-commits] [llvm-gcc-4.0] r43856 - /llvm-gcc-4.0/trunk/gcc/llvm-convert.cpp
Author: void Date: Wed Nov 7 18:10:45 2007 New Revision: 43856 URL: http://llvm.org/viewvc/llvm-project?rev=43856view=rev Log: Revised FIXME comment Modified: llvm-gcc-4.0/trunk/gcc/llvm-convert.cpp Modified: llvm-gcc-4.0/trunk/gcc/llvm-convert.cpp URL: http://llvm.org/viewvc/llvm-project/llvm-gcc-4.0/trunk/gcc/llvm-convert.cpp?rev=43856r1=43855r2=43856view=diff == --- llvm-gcc-4.0/trunk/gcc/llvm-convert.cpp (original) +++ llvm-gcc-4.0/trunk/gcc/llvm-convert.cpp Wed Nov 7 18:10:45 2007 @@ -1297,7 +1297,10 @@ CastToType(Instruction::BitCast, DestPtr, SBP), CastToType(Instruction::BitCast, SrcPtr, SBP), CastToSIntType(Size, IntPtr), -ConstantInt::get(Type::Int32Ty, 1) // FIXME: Hardcoding 1 here is a hack. +// FIXME: (PR1781) The alignment of DestPtr and SrcPtr may be different. We +// want the alignment of memcpy to be the minimal of the two. This isn't +// currently possible. Setting to 1 for the meantime. +ConstantInt::get(Type::Int32Ty, 1) }; Intrinsic::ID IID = @@ -1313,7 +1316,10 @@ CastToType(Instruction::BitCast, DestPtr, SBP), CastToType(Instruction::BitCast, SrcPtr, SBP), CastToSIntType(Size, IntPtr), -ConstantInt::get(Type::Int32Ty, Align) +// FIXME: (PR1781) The alignment of DestPtr and SrcPtr may be different. We +// want the alignment of memmove to be the minimal of the two. This isn't +// currently possible. Setting to 1 for the meantime. +ConstantInt::get(Type::Int32Ty, 1) }; Intrinsic::ID IID = @@ -1329,7 +1335,10 @@ CastToType(Instruction::BitCast, DestPtr, SBP), CastToSIntType(SrcVal, Type::Int8Ty), CastToSIntType(Size, IntPtr), -ConstantInt::get(Type::Int32Ty, 1) // FIXME: Hardcoding 1 here is a hack. +// FIXME: (PR1781) The alignment of DestPtr and SrcPtr may be different. We +// want the alignment of memset to be the minimal of the two. This isn't +// currently possible. Setting to 1 for the meantime. +ConstantInt::get(Type::Int32Ty, 1) }; Intrinsic::ID IID = ___ llvm-commits mailing list llvm-commits@cs.uiuc.edu http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits
[llvm-commits] [llvm] r43861 - /llvm/trunk/include/llvm/Bitcode/Serialize.h
Author: kremenek Date: Wed Nov 7 18:55:31 2007 New Revision: 43861 URL: http://llvm.org/viewvc/llvm-project?rev=43861view=rev Log: Revised BatchEmitOwnedPtrs to work better with constant pointers. Modified: llvm/trunk/include/llvm/Bitcode/Serialize.h Modified: llvm/trunk/include/llvm/Bitcode/Serialize.h URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/include/llvm/Bitcode/Serialize.h?rev=43861r1=43860r2=43861view=diff == --- llvm/trunk/include/llvm/Bitcode/Serialize.h (original) +++ llvm/trunk/include/llvm/Bitcode/Serialize.h Wed Nov 7 18:55:31 2007 @@ -86,7 +86,7 @@ } template typename T - void BatchEmitOwnedPtrs(unsigned NumPtrs, T** Ptrs) { + void BatchEmitOwnedPtrs(unsigned NumPtrs, T* const * Ptrs) { for (unsigned i = 0; i NumPtrs; ++i) EmitPtr(Ptrs[i]); ___ llvm-commits mailing list llvm-commits@cs.uiuc.edu http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits
[llvm-commits] [llvm-gcc-4.2] r43865 - /llvm-gcc-4.2/trunk/gcc/testsuite/gcc.dg/vect/vect.exp
Author: johannes Date: Wed Nov 7 19:19:56 2007 New Revision: 43865 URL: http://llvm.org/viewvc/llvm-project?rev=43865view=rev Log: Disable all tests using -fdump for llvm. Modified: llvm-gcc-4.2/trunk/gcc/testsuite/gcc.dg/vect/vect.exp Modified: llvm-gcc-4.2/trunk/gcc/testsuite/gcc.dg/vect/vect.exp URL: http://llvm.org/viewvc/llvm-project/llvm-gcc-4.2/trunk/gcc/testsuite/gcc.dg/vect/vect.exp?rev=43865r1=43864r2=43865view=diff == --- llvm-gcc-4.2/trunk/gcc/testsuite/gcc.dg/vect/vect.exp (original) +++ llvm-gcc-4.2/trunk/gcc/testsuite/gcc.dg/vect/vect.exp Wed Nov 7 19:19:56 2007 @@ -87,68 +87,72 @@ lappend DEFAULT_VECTCFLAGS -fdump-tree-vect-details # Main loop. -dg-runtest [lsort [glob -nocomplain $srcdir/$subdir/pr*.\[cS\]]] \ -$DEFAULT_VECTCFLAGS -dg-runtest [lsort [glob -nocomplain $srcdir/$subdir/vect-*.\[cS\]]] \ -$DEFAULT_VECTCFLAGS +# LLVM LOCAL begin llvm doesn't support -fdump. +if { ![ is_llvm ] } { + dg-runtest [lsort [glob -nocomplain $srcdir/$subdir/pr*.\[cS\]]] \ + $DEFAULT_VECTCFLAGS + dg-runtest [lsort [glob -nocomplain $srcdir/$subdir/vect-*.\[cS\]]] \ + $DEFAULT_VECTCFLAGS Tests with special options -global SAVED_DEFAULT_VECTCFLAGS -set SAVED_DEFAULT_VECTCFLAGS $DEFAULT_VECTCFLAGS + global SAVED_DEFAULT_VECTCFLAGS + set SAVED_DEFAULT_VECTCFLAGS $DEFAULT_VECTCFLAGS # -ffast-math tests -set DEFAULT_VECTCFLAGS $SAVED_DEFAULT_VECTCFLAGS -lappend DEFAULT_VECTCFLAGS -ffast-math -dg-runtest [lsort [glob -nocomplain $srcdir/$subdir/fast-math-vect*.\[cS\]]] \ -$DEFAULT_VECTCFLAGS + set DEFAULT_VECTCFLAGS $SAVED_DEFAULT_VECTCFLAGS + lappend DEFAULT_VECTCFLAGS -ffast-math + dg-runtest [lsort [glob -nocomplain $srcdir/$subdir/fast-math-vect*.\[cS\]]] \ + $DEFAULT_VECTCFLAGS # -fwrapv tests -set DEFAULT_VECTCFLAGS $SAVED_DEFAULT_VECTCFLAGS -lappend DEFAULT_VECTCFLAGS -fwrapv -dg-runtest [lsort [glob -nocomplain $srcdir/$subdir/wrapv-vect*.\[cS\]]] \ - $DEFAULT_VECTCFLAGS + set DEFAULT_VECTCFLAGS $SAVED_DEFAULT_VECTCFLAGS + lappend DEFAULT_VECTCFLAGS -fwrapv + dg-runtest [lsort [glob -nocomplain $srcdir/$subdir/wrapv-vect*.\[cS\]]] \ + $DEFAULT_VECTCFLAGS # -ftrapv tests -set DEFAULT_VECTCFLAGS $SAVED_DEFAULT_VECTCFLAGS -lappend DEFAULT_VECTCFLAGS -ftrapv -dg-runtest [lsort [glob -nocomplain $srcdir/$subdir/trapv-vect*.\[cS\]]] \ -$DEFAULT_VECTCFLAGS + set DEFAULT_VECTCFLAGS $SAVED_DEFAULT_VECTCFLAGS + lappend DEFAULT_VECTCFLAGS -ftrapv + dg-runtest [lsort [glob -nocomplain $srcdir/$subdir/trapv-vect*.\[cS\]]] \ + $DEFAULT_VECTCFLAGS # -fdump-tree-dceloop-details tests -set DEFAULT_VECTCFLAGS $SAVED_DEFAULT_VECTCFLAGS -lappend DEFAULT_VECTCFLAGS -fdump-tree-dceloop-details -dg-runtest [lsort [glob -nocomplain $srcdir/$subdir/dump-tree-dceloop-*.\[cS\]]] \ - $DEFAULT_VECTCFLAGS + set DEFAULT_VECTCFLAGS $SAVED_DEFAULT_VECTCFLAGS + lappend DEFAULT_VECTCFLAGS -fdump-tree-dceloop-details + dg-runtest [lsort [glob -nocomplain $srcdir/$subdir/dump-tree-dceloop-*.\[cS\]]] \ + $DEFAULT_VECTCFLAGS # -fno-tree-dce tests -set DEFAULT_VECTCFLAGS $SAVED_DEFAULT_VECTCFLAGS -lappend DEFAULT_VECTCFLAGS -fno-tree-dce -dg-runtest [lsort [glob -nocomplain $srcdir/$subdir/no-tree-dce-*.\[cS\]]] \ -$DEFAULT_VECTCFLAGS + set DEFAULT_VECTCFLAGS $SAVED_DEFAULT_VECTCFLAGS + lappend DEFAULT_VECTCFLAGS -fno-tree-dce + dg-runtest [lsort [glob -nocomplain $srcdir/$subdir/no-tree-dce-*.\[cS\]]] \ + $DEFAULT_VECTCFLAGS # -fsection-anchors tests -set DEFAULT_VECTCFLAGS $SAVED_DEFAULT_VECTCFLAGS -lappend DEFAULT_VECTCFLAGS -fsection-anchors -dg-runtest [lsort [glob -nocomplain $srcdir/$subdir/section-anchors-*.\[cS\]]] \ -$DEFAULT_VECTCFLAGS + set DEFAULT_VECTCFLAGS $SAVED_DEFAULT_VECTCFLAGS + lappend DEFAULT_VECTCFLAGS -fsection-anchors + dg-runtest [lsort [glob -nocomplain $srcdir/$subdir/section-anchors-*.\[cS\]]] \ + $DEFAULT_VECTCFLAGS # -fno-section-anchors tests -set DEFAULT_VECTCFLAGS $SAVED_DEFAULT_VECTCFLAGS -lappend DEFAULT_VECTCFLAGS -fno-section-anchors -dg-runtest [lsort [glob -nocomplain $srcdir/$subdir/no-section-anchors-*.\[cS\]]] \ -$DEFAULT_VECTCFLAGS + set DEFAULT_VECTCFLAGS $SAVED_DEFAULT_VECTCFLAGS + lappend DEFAULT_VECTCFLAGS -fno-section-anchors + dg-runtest [lsort [glob -nocomplain $srcdir/$subdir/no-section-anchors-*.\[cS\]]] \ + $DEFAULT_VECTCFLAGS # -funswitch-loops tests -set DEFAULT_VECTCFLAGS $SAVED_DEFAULT_VECTCFLAGS -lappend DEFAULT_VECTCFLAGS -funswitch-loops -dg-runtest [lsort [glob -nocomplain $srcdir/$subdir/unswitch-loops-*.\[cS\]]] \ -$DEFAULT_VECTCFLAGS + set DEFAULT_VECTCFLAGS $SAVED_DEFAULT_VECTCFLAGS + lappend DEFAULT_VECTCFLAGS -funswitch-loops + dg-runtest [lsort [glob -nocomplain $srcdir/$subdir/unswitch-loops-*.\[cS\]]] \ +
[llvm-commits] [llvm] r43866 - in /llvm/trunk/lib/CodeGen: LiveVariables.cpp PHIElimination.cpp TwoAddressInstructionPass.cpp
Author: resistor Date: Wed Nov 7 19:20:48 2007 New Revision: 43866 URL: http://llvm.org/viewvc/llvm-project?rev=43866view=rev Log: Bring UsedBlocks back. StrongPHIElimination needs this information. Modified: llvm/trunk/lib/CodeGen/LiveVariables.cpp llvm/trunk/lib/CodeGen/PHIElimination.cpp llvm/trunk/lib/CodeGen/TwoAddressInstructionPass.cpp Modified: llvm/trunk/lib/CodeGen/LiveVariables.cpp URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/CodeGen/LiveVariables.cpp?rev=43866r1=43865r2=43866view=diff == --- llvm/trunk/lib/CodeGen/LiveVariables.cpp (original) +++ llvm/trunk/lib/CodeGen/LiveVariables.cpp Wed Nov 7 19:20:48 2007 @@ -50,6 +50,9 @@ cerrAlive in blocks: ; for (unsigned i = 0, e = AliveBlocks.size(); i != e; ++i) if (AliveBlocks[i]) cerr i , ; + cerrUsed in blocks: ; + for (unsigned i = 0, e = UsedBlocks.size(); i != e; ++i) +if (UsedBlocks[i]) cerr i , ; cerr \n Killed by:; if (Kills.empty()) cerr No instructions.\n; @@ -72,6 +75,7 @@ } VarInfo VI = VirtRegInfo[RegIdx]; VI.AliveBlocks.resize(MF-getNumBlockIDs()); + VI.UsedBlocks.resize(MF-getNumBlockIDs()); return VI; } @@ -154,6 +158,9 @@ MachineInstr *MI) { assert(VRInfo.DefInst Register use before def!); + unsigned BBNum = MBB-getNumber(); + + VRInfo.UsedBlocks[BBNum] = true; VRInfo.NumUses++; // Check to see if this basic block is already a kill block... @@ -176,7 +183,7 @@ // If this virtual register is already marked as alive in this basic block, // that means it is alive in at least one of the successor block, it's not // a kill. - if (!VRInfo.AliveBlocks[MBB-getNumber()]) + if (!VRInfo.AliveBlocks[BBNum]) VRInfo.Kills.push_back(MI); // Update all dominating blocks to mark them known live. Modified: llvm/trunk/lib/CodeGen/PHIElimination.cpp URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/CodeGen/PHIElimination.cpp?rev=43866r1=43865r2=43866view=diff == --- llvm/trunk/lib/CodeGen/PHIElimination.cpp (original) +++ llvm/trunk/lib/CodeGen/PHIElimination.cpp Wed Nov 7 19:20:48 2007 @@ -167,6 +167,8 @@ // Realize that the destination register is defined by the PHI copy now, not // the PHI itself. LV-getVarInfo(DestReg).DefInst = PHICopy; + +LV-getVarInfo(IncomingReg).UsedBlocks[MBB.getNumber()] = true; } // Adjust the VRegPHIUseCount map to account for the removal of this PHI @@ -217,6 +219,7 @@ // instruction kills the incoming value. // LiveVariables::VarInfo InRegVI = LV-getVarInfo(SrcReg); +InRegVI.UsedBlocks[opBlock.getNumber()] = true; // Loop over all of the successors of the basic block, checking to see // if the value is either live in the block, or if it is killed in the Modified: llvm/trunk/lib/CodeGen/TwoAddressInstructionPass.cpp URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/CodeGen/TwoAddressInstructionPass.cpp?rev=43866r1=43865r2=43866view=diff == --- llvm/trunk/lib/CodeGen/TwoAddressInstructionPass.cpp (original) +++ llvm/trunk/lib/CodeGen/TwoAddressInstructionPass.cpp Wed Nov 7 19:20:48 2007 @@ -202,6 +202,10 @@ LiveVariables::VarInfo varInfo = LV.getVarInfo(regA); varInfo.DefInst = prevMi; + // update live variables for regB + LiveVariables::VarInfo varInfoB = LV.getVarInfo(regB); + // regB is used in this BB. + varInfoB.UsedBlocks[mbbi-getNumber()] = true; if (LV.removeVirtualRegisterKilled(regB, mbbi, mi)) LV.addVirtualRegisterKilled(regB, prevMi); ___ llvm-commits mailing list llvm-commits@cs.uiuc.edu http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits
[llvm-commits] [llvm] r43869 - /llvm/trunk/lib/CodeGen/StrongPHIElimination.cpp
Author: resistor Date: Wed Nov 7 19:32:45 2007 New Revision: 43869 URL: http://llvm.org/viewvc/llvm-project?rev=43869view=rev Log: Take another stab at getting isLiveIn() and isLiveOut() right. Modified: llvm/trunk/lib/CodeGen/StrongPHIElimination.cpp Modified: llvm/trunk/lib/CodeGen/StrongPHIElimination.cpp URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/CodeGen/StrongPHIElimination.cpp?rev=43869r1=43868r2=43869view=diff == --- llvm/trunk/lib/CodeGen/StrongPHIElimination.cpp (original) +++ llvm/trunk/lib/CodeGen/StrongPHIElimination.cpp Wed Nov 7 19:32:45 2007 @@ -225,10 +225,9 @@ if (V.AliveBlocks.test(MBB-getNumber())) return true; - for (std::vectorMachineInstr*::iterator I = V.Kills.begin(), - E = V.Kills.end(); I != E; ++I) -if ((*I)-getParent() == MBB) - return true; + if (V.DefInst-getParent() != MBB + V.UsedBlocks.test(MBB-getNumber())) +return true; return false; } @@ -236,11 +235,15 @@ /// isLiveOut - help method that determines, from a VarInfo, if a register is /// live out of a block. bool isLiveOut(LiveVariables::VarInfo V, MachineBasicBlock* MBB) { - if (V.AliveBlocks.test(MBB-getNumber())) -return true; - - if (V.DefInst-getParent() == MBB) + if (MBB == V.DefInst-getParent() || + V.UsedBlocks.test(MBB-getNumber())) { +for (std::vectorMachineInstr*::iterator I = V.Kills.begin(), + E = V.Kills.end(); I != E; ++I) + if ((*I)-getParent() == MBB) +return false; + return true; + } return false; } ___ llvm-commits mailing list llvm-commits@cs.uiuc.edu http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits
[llvm-commits] [llvm-gcc-4.2] r43870 - in /llvm-gcc-4.2/trunk/gcc/testsuite/g++.dg/gomp: atomic-10.C atomic-3.C atomic-9.C barrier-1.C block-0.C critical-1.C flush-1.C for-10.C for-13.C for-4.C for-5.
Author: johannes Date: Wed Nov 7 19:54:46 2007 New Revision: 43870 URL: http://llvm.org/viewvc/llvm-project?rev=43870view=rev Log: Disable some more tests for llvm. Modified: llvm-gcc-4.2/trunk/gcc/testsuite/g++.dg/gomp/atomic-10.C llvm-gcc-4.2/trunk/gcc/testsuite/g++.dg/gomp/atomic-3.C llvm-gcc-4.2/trunk/gcc/testsuite/g++.dg/gomp/atomic-9.C llvm-gcc-4.2/trunk/gcc/testsuite/g++.dg/gomp/barrier-1.C llvm-gcc-4.2/trunk/gcc/testsuite/g++.dg/gomp/block-0.C llvm-gcc-4.2/trunk/gcc/testsuite/g++.dg/gomp/critical-1.C llvm-gcc-4.2/trunk/gcc/testsuite/g++.dg/gomp/flush-1.C llvm-gcc-4.2/trunk/gcc/testsuite/g++.dg/gomp/for-10.C llvm-gcc-4.2/trunk/gcc/testsuite/g++.dg/gomp/for-13.C llvm-gcc-4.2/trunk/gcc/testsuite/g++.dg/gomp/for-4.C llvm-gcc-4.2/trunk/gcc/testsuite/g++.dg/gomp/for-5.C llvm-gcc-4.2/trunk/gcc/testsuite/g++.dg/gomp/for-6.C llvm-gcc-4.2/trunk/gcc/testsuite/g++.dg/gomp/for-7.C llvm-gcc-4.2/trunk/gcc/testsuite/g++.dg/gomp/for-8.C llvm-gcc-4.2/trunk/gcc/testsuite/g++.dg/gomp/for-9.C llvm-gcc-4.2/trunk/gcc/testsuite/g++.dg/gomp/macro-3.C llvm-gcc-4.2/trunk/gcc/testsuite/g++.dg/gomp/master-3.C llvm-gcc-4.2/trunk/gcc/testsuite/g++.dg/gomp/ordered-1.C llvm-gcc-4.2/trunk/gcc/testsuite/g++.dg/gomp/tpl-barrier-1.C llvm-gcc-4.2/trunk/gcc/testsuite/g++.dg/gomp/tpl-master-1.C Modified: llvm-gcc-4.2/trunk/gcc/testsuite/g++.dg/gomp/atomic-10.C URL: http://llvm.org/viewvc/llvm-project/llvm-gcc-4.2/trunk/gcc/testsuite/g%2B%2B.dg/gomp/atomic-10.C?rev=43870r1=43869r2=43870view=diff == --- llvm-gcc-4.2/trunk/gcc/testsuite/g++.dg/gomp/atomic-10.C (original) +++ llvm-gcc-4.2/trunk/gcc/testsuite/g++.dg/gomp/atomic-10.C Wed Nov 7 19:54:46 2007 @@ -1,6 +1,8 @@ // PR middle-end/28046 // { dg-do compile } // { dg-options -fopenmp -fdump-tree-gimple } +/* LLVM LOCAL test not applicable */ +/* { dg-require-fdump } */ int a[3], b; struct C { int x; int y; } c; Modified: llvm-gcc-4.2/trunk/gcc/testsuite/g++.dg/gomp/atomic-3.C URL: http://llvm.org/viewvc/llvm-project/llvm-gcc-4.2/trunk/gcc/testsuite/g%2B%2B.dg/gomp/atomic-3.C?rev=43870r1=43869r2=43870view=diff == --- llvm-gcc-4.2/trunk/gcc/testsuite/g++.dg/gomp/atomic-3.C (original) +++ llvm-gcc-4.2/trunk/gcc/testsuite/g++.dg/gomp/atomic-3.C Wed Nov 7 19:54:46 2007 @@ -1,5 +1,7 @@ /* { dg-do compile } */ /* { dg-options -fopenmp -fdump-tree-gimple } */ +/* LLVM LOCAL test not applicable */ +/* { dg-require-fdump } */ int *xyzzy; Modified: llvm-gcc-4.2/trunk/gcc/testsuite/g++.dg/gomp/atomic-9.C URL: http://llvm.org/viewvc/llvm-project/llvm-gcc-4.2/trunk/gcc/testsuite/g%2B%2B.dg/gomp/atomic-9.C?rev=43870r1=43869r2=43870view=diff == --- llvm-gcc-4.2/trunk/gcc/testsuite/g++.dg/gomp/atomic-9.C (original) +++ llvm-gcc-4.2/trunk/gcc/testsuite/g++.dg/gomp/atomic-9.C Wed Nov 7 19:54:46 2007 @@ -1,5 +1,7 @@ /* { dg-do compile } */ /* { dg-options -fopenmp -fdump-tree-gimple } */ +/* LLVM LOCAL test not applicable */ +/* { dg-require-fdump } */ volatile int *bar(void); Modified: llvm-gcc-4.2/trunk/gcc/testsuite/g++.dg/gomp/barrier-1.C URL: http://llvm.org/viewvc/llvm-project/llvm-gcc-4.2/trunk/gcc/testsuite/g%2B%2B.dg/gomp/barrier-1.C?rev=43870r1=43869r2=43870view=diff == --- llvm-gcc-4.2/trunk/gcc/testsuite/g++.dg/gomp/barrier-1.C (original) +++ llvm-gcc-4.2/trunk/gcc/testsuite/g++.dg/gomp/barrier-1.C Wed Nov 7 19:54:46 2007 @@ -1,5 +1,7 @@ /* { dg-do compile } */ /* { dg-options -fopenmp -fdump-tree-gimple } */ +/* LLVM LOCAL test not applicable */ +/* { dg-require-fdump } */ void f1(void) { Modified: llvm-gcc-4.2/trunk/gcc/testsuite/g++.dg/gomp/block-0.C URL: http://llvm.org/viewvc/llvm-project/llvm-gcc-4.2/trunk/gcc/testsuite/g%2B%2B.dg/gomp/block-0.C?rev=43870r1=43869r2=43870view=diff == --- llvm-gcc-4.2/trunk/gcc/testsuite/g++.dg/gomp/block-0.C (original) +++ llvm-gcc-4.2/trunk/gcc/testsuite/g++.dg/gomp/block-0.C Wed Nov 7 19:54:46 2007 @@ -1,5 +1,7 @@ // { dg-do compile } // { dg-options -fopenmp -fdump-tree-omplower } +/* LLVM LOCAL test not applicable */ +/* { dg-require-fdump } */ void bar(); void foo() Modified: llvm-gcc-4.2/trunk/gcc/testsuite/g++.dg/gomp/critical-1.C URL: http://llvm.org/viewvc/llvm-project/llvm-gcc-4.2/trunk/gcc/testsuite/g%2B%2B.dg/gomp/critical-1.C?rev=43870r1=43869r2=43870view=diff == --- llvm-gcc-4.2/trunk/gcc/testsuite/g++.dg/gomp/critical-1.C (original) +++ llvm-gcc-4.2/trunk/gcc/testsuite/g++.dg/gomp/critical-1.C Wed Nov 7 19:54:46 2007 @@ -1,5 +1,7 @@ /* { dg-do
[llvm-commits] [llvm-gcc-4.2] r43872 - /llvm-gcc-4.2/trunk/gcc/testsuite/g++.dg/opt/nothrow1.C
Author: johannes Date: Wed Nov 7 19:59:23 2007 New Revision: 43872 URL: http://llvm.org/viewvc/llvm-project?rev=43872view=rev Log: Disable for llvm. Modified: llvm-gcc-4.2/trunk/gcc/testsuite/g++.dg/opt/nothrow1.C Modified: llvm-gcc-4.2/trunk/gcc/testsuite/g++.dg/opt/nothrow1.C URL: http://llvm.org/viewvc/llvm-project/llvm-gcc-4.2/trunk/gcc/testsuite/g%2B%2B.dg/opt/nothrow1.C?rev=43872r1=43871r2=43872view=diff == --- llvm-gcc-4.2/trunk/gcc/testsuite/g++.dg/opt/nothrow1.C (original) +++ llvm-gcc-4.2/trunk/gcc/testsuite/g++.dg/opt/nothrow1.C Wed Nov 7 19:59:23 2007 @@ -1,6 +1,8 @@ // Test that the nothrow optimization works properly. // { dg-do compile } // { dg-options -O -fdump-tree-optimized } +// LLVM LOCAL fdump not supported +// { dg-require-fdump } extern void blah() throw(); ___ llvm-commits mailing list llvm-commits@cs.uiuc.edu http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits
[llvm-commits] [llvm-gcc-4.2] r43873 - in /llvm-gcc-4.2/trunk/gcc/testsuite/gcc.dg/gomp: atomic-10.c atomic-3.c atomic-9.c barrier-1.c critical-1.c critical-3.c empty.c flush-1.c for-10.c for-13.c for
Author: johannes Date: Wed Nov 7 20:08:00 2007 New Revision: 43873 URL: http://llvm.org/viewvc/llvm-project?rev=43873view=rev Log: Disable more testcases for llvm. Modified: llvm-gcc-4.2/trunk/gcc/testsuite/gcc.dg/gomp/atomic-10.c llvm-gcc-4.2/trunk/gcc/testsuite/gcc.dg/gomp/atomic-3.c llvm-gcc-4.2/trunk/gcc/testsuite/gcc.dg/gomp/atomic-9.c llvm-gcc-4.2/trunk/gcc/testsuite/gcc.dg/gomp/barrier-1.c llvm-gcc-4.2/trunk/gcc/testsuite/gcc.dg/gomp/critical-1.c llvm-gcc-4.2/trunk/gcc/testsuite/gcc.dg/gomp/critical-3.c llvm-gcc-4.2/trunk/gcc/testsuite/gcc.dg/gomp/empty.c llvm-gcc-4.2/trunk/gcc/testsuite/gcc.dg/gomp/flush-1.c llvm-gcc-4.2/trunk/gcc/testsuite/gcc.dg/gomp/for-10.c llvm-gcc-4.2/trunk/gcc/testsuite/gcc.dg/gomp/for-13.c llvm-gcc-4.2/trunk/gcc/testsuite/gcc.dg/gomp/for-18.c llvm-gcc-4.2/trunk/gcc/testsuite/gcc.dg/gomp/for-19.c llvm-gcc-4.2/trunk/gcc/testsuite/gcc.dg/gomp/for-4.c llvm-gcc-4.2/trunk/gcc/testsuite/gcc.dg/gomp/for-5.c llvm-gcc-4.2/trunk/gcc/testsuite/gcc.dg/gomp/for-6.c llvm-gcc-4.2/trunk/gcc/testsuite/gcc.dg/gomp/for-7.c llvm-gcc-4.2/trunk/gcc/testsuite/gcc.dg/gomp/for-8.c llvm-gcc-4.2/trunk/gcc/testsuite/gcc.dg/gomp/for-9.c llvm-gcc-4.2/trunk/gcc/testsuite/gcc.dg/gomp/macro-3.c llvm-gcc-4.2/trunk/gcc/testsuite/gcc.dg/gomp/master-3.c llvm-gcc-4.2/trunk/gcc/testsuite/gcc.dg/gomp/ordered-1.c llvm-gcc-4.2/trunk/gcc/testsuite/gcc.dg/gomp/pr27388-1.c llvm-gcc-4.2/trunk/gcc/testsuite/gcc.dg/gomp/pr27388-2.c llvm-gcc-4.2/trunk/gcc/testsuite/gcc.dg/gomp/pr27388-3.c Modified: llvm-gcc-4.2/trunk/gcc/testsuite/gcc.dg/gomp/atomic-10.c URL: http://llvm.org/viewvc/llvm-project/llvm-gcc-4.2/trunk/gcc/testsuite/gcc.dg/gomp/atomic-10.c?rev=43873r1=43872r2=43873view=diff == --- llvm-gcc-4.2/trunk/gcc/testsuite/gcc.dg/gomp/atomic-10.c (original) +++ llvm-gcc-4.2/trunk/gcc/testsuite/gcc.dg/gomp/atomic-10.c Wed Nov 7 20:08:00 2007 @@ -1,6 +1,8 @@ /* PR middle-end/28046 */ /* { dg-do compile } */ /* { dg-options -fopenmp -fdump-tree-gimple } */ +/* LLVM LOCAL test not applicable */ +/* { dg-require-fdump } */ int a[3], b; struct C { int x; int y; } c; Modified: llvm-gcc-4.2/trunk/gcc/testsuite/gcc.dg/gomp/atomic-3.c URL: http://llvm.org/viewvc/llvm-project/llvm-gcc-4.2/trunk/gcc/testsuite/gcc.dg/gomp/atomic-3.c?rev=43873r1=43872r2=43873view=diff == --- llvm-gcc-4.2/trunk/gcc/testsuite/gcc.dg/gomp/atomic-3.c (original) +++ llvm-gcc-4.2/trunk/gcc/testsuite/gcc.dg/gomp/atomic-3.c Wed Nov 7 20:08:00 2007 @@ -1,5 +1,7 @@ /* { dg-do compile } */ /* { dg-options -fopenmp -fdump-tree-gimple } */ +/* LLVM LOCAL test not applicable */ +/* { dg-require-fdump } */ int *xyzzy; Modified: llvm-gcc-4.2/trunk/gcc/testsuite/gcc.dg/gomp/atomic-9.c URL: http://llvm.org/viewvc/llvm-project/llvm-gcc-4.2/trunk/gcc/testsuite/gcc.dg/gomp/atomic-9.c?rev=43873r1=43872r2=43873view=diff == --- llvm-gcc-4.2/trunk/gcc/testsuite/gcc.dg/gomp/atomic-9.c (original) +++ llvm-gcc-4.2/trunk/gcc/testsuite/gcc.dg/gomp/atomic-9.c Wed Nov 7 20:08:00 2007 @@ -1,5 +1,7 @@ /* { dg-do compile } */ /* { dg-options -fopenmp -fdump-tree-gimple } */ +/* LLVM LOCAL test not applicable */ +/* { dg-require-fdump } */ volatile int *bar(void); Modified: llvm-gcc-4.2/trunk/gcc/testsuite/gcc.dg/gomp/barrier-1.c URL: http://llvm.org/viewvc/llvm-project/llvm-gcc-4.2/trunk/gcc/testsuite/gcc.dg/gomp/barrier-1.c?rev=43873r1=43872r2=43873view=diff == --- llvm-gcc-4.2/trunk/gcc/testsuite/gcc.dg/gomp/barrier-1.c (original) +++ llvm-gcc-4.2/trunk/gcc/testsuite/gcc.dg/gomp/barrier-1.c Wed Nov 7 20:08:00 2007 @@ -1,5 +1,7 @@ /* { dg-do compile } */ /* { dg-options -fopenmp -fdump-tree-gimple } */ +/* LLVM LOCAL test not applicable */ +/* { dg-require-fdump } */ void f1(void) { Modified: llvm-gcc-4.2/trunk/gcc/testsuite/gcc.dg/gomp/critical-1.c URL: http://llvm.org/viewvc/llvm-project/llvm-gcc-4.2/trunk/gcc/testsuite/gcc.dg/gomp/critical-1.c?rev=43873r1=43872r2=43873view=diff == --- llvm-gcc-4.2/trunk/gcc/testsuite/gcc.dg/gomp/critical-1.c (original) +++ llvm-gcc-4.2/trunk/gcc/testsuite/gcc.dg/gomp/critical-1.c Wed Nov 7 20:08:00 2007 @@ -1,5 +1,7 @@ /* { dg-do compile } */ /* { dg-options -fopenmp -fdump-tree-ompexp } */ +/* LLVM LOCAL test not applicable */ +/* { dg-require-fdump } */ extern void bar(int); Modified: llvm-gcc-4.2/trunk/gcc/testsuite/gcc.dg/gomp/critical-3.c URL: http://llvm.org/viewvc/llvm-project/llvm-gcc-4.2/trunk/gcc/testsuite/gcc.dg/gomp/critical-3.c?rev=43873r1=43872r2=43873view=diff
[llvm-commits] [llvm-gcc-4.2] r43875 - /llvm-gcc-4.2/trunk/gcc/testsuite/gcc.dg/
Author: johannes Date: Wed Nov 7 20:22:14 2007 New Revision: 43875 URL: http://llvm.org/viewvc/llvm-project?rev=43875view=rev Log: Disable more tests for llvm. Modified: llvm-gcc-4.2/trunk/gcc/testsuite/gcc.dg/builtins-43.c llvm-gcc-4.2/trunk/gcc/testsuite/gcc.dg/builtins-44.c llvm-gcc-4.2/trunk/gcc/testsuite/gcc.dg/builtins-45.c llvm-gcc-4.2/trunk/gcc/testsuite/gcc.dg/builtins-47.c llvm-gcc-4.2/trunk/gcc/testsuite/gcc.dg/fold-abs-3.c llvm-gcc-4.2/trunk/gcc/testsuite/gcc.dg/fold-abs-4.c llvm-gcc-4.2/trunk/gcc/testsuite/gcc.dg/fold-alloca-1.c llvm-gcc-4.2/trunk/gcc/testsuite/gcc.dg/fold-andxor-1.c llvm-gcc-4.2/trunk/gcc/testsuite/gcc.dg/fold-cond-1.c llvm-gcc-4.2/trunk/gcc/testsuite/gcc.dg/fold-convnotconv-1.c llvm-gcc-4.2/trunk/gcc/testsuite/gcc.dg/fold-convround-1.c llvm-gcc-4.2/trunk/gcc/testsuite/gcc.dg/fold-div-1.c llvm-gcc-4.2/trunk/gcc/testsuite/gcc.dg/fold-div-2.c llvm-gcc-4.2/trunk/gcc/testsuite/gcc.dg/fold-eqandnot-1.c llvm-gcc-4.2/trunk/gcc/testsuite/gcc.dg/fold-eqandshift-1.c llvm-gcc-4.2/trunk/gcc/testsuite/gcc.dg/fold-eqandshift-2.c llvm-gcc-4.2/trunk/gcc/testsuite/gcc.dg/fold-eqandshift-3.c llvm-gcc-4.2/trunk/gcc/testsuite/gcc.dg/fold-eqxor-1.c llvm-gcc-4.2/trunk/gcc/testsuite/gcc.dg/fold-eqxor-2.c llvm-gcc-4.2/trunk/gcc/testsuite/gcc.dg/fold-eqxor-3.c llvm-gcc-4.2/trunk/gcc/testsuite/gcc.dg/fold-even-1.c llvm-gcc-4.2/trunk/gcc/testsuite/gcc.dg/fold-mod-1.c llvm-gcc-4.2/trunk/gcc/testsuite/gcc.dg/fold-mulconj-1.c llvm-gcc-4.2/trunk/gcc/testsuite/gcc.dg/fold-xor-1.c llvm-gcc-4.2/trunk/gcc/testsuite/gcc.dg/fold-xor-2.c llvm-gcc-4.2/trunk/gcc/testsuite/gcc.dg/fold-xorand-1.c llvm-gcc-4.2/trunk/gcc/testsuite/gcc.dg/minmax-1.c llvm-gcc-4.2/trunk/gcc/testsuite/gcc.dg/no-strict-overflow-1.c llvm-gcc-4.2/trunk/gcc/testsuite/gcc.dg/no-strict-overflow-2.c llvm-gcc-4.2/trunk/gcc/testsuite/gcc.dg/no-strict-overflow-3.c llvm-gcc-4.2/trunk/gcc/testsuite/gcc.dg/no-strict-overflow-4.c llvm-gcc-4.2/trunk/gcc/testsuite/gcc.dg/no-strict-overflow-5.c llvm-gcc-4.2/trunk/gcc/testsuite/gcc.dg/no-strict-overflow-6.c llvm-gcc-4.2/trunk/gcc/testsuite/gcc.dg/nrv3.c llvm-gcc-4.2/trunk/gcc/testsuite/gcc.dg/nrv4.c llvm-gcc-4.2/trunk/gcc/testsuite/gcc.dg/nrv5.c llvm-gcc-4.2/trunk/gcc/testsuite/gcc.dg/opt-diary-3.c llvm-gcc-4.2/trunk/gcc/testsuite/gcc.dg/pr14796-1.c llvm-gcc-4.2/trunk/gcc/testsuite/gcc.dg/pr14796-2.c llvm-gcc-4.2/trunk/gcc/testsuite/gcc.dg/pr15784-1.c llvm-gcc-4.2/trunk/gcc/testsuite/gcc.dg/pr15784-2.c llvm-gcc-4.2/trunk/gcc/testsuite/gcc.dg/pr15784-3.c llvm-gcc-4.2/trunk/gcc/testsuite/gcc.dg/pr15784-4.c llvm-gcc-4.2/trunk/gcc/testsuite/gcc.dg/pr20115-1.c llvm-gcc-4.2/trunk/gcc/testsuite/gcc.dg/pr20130-1.c llvm-gcc-4.2/trunk/gcc/testsuite/gcc.dg/pr20922-1.c llvm-gcc-4.2/trunk/gcc/testsuite/gcc.dg/pr20922-2.c llvm-gcc-4.2/trunk/gcc/testsuite/gcc.dg/pr20922-3.c llvm-gcc-4.2/trunk/gcc/testsuite/gcc.dg/pr20922-4.c llvm-gcc-4.2/trunk/gcc/testsuite/gcc.dg/pr20922-5.c llvm-gcc-4.2/trunk/gcc/testsuite/gcc.dg/pr20922-6.c llvm-gcc-4.2/trunk/gcc/testsuite/gcc.dg/pr21032.c llvm-gcc-4.2/trunk/gcc/testsuite/gcc.dg/pr23584.c llvm-gcc-4.2/trunk/gcc/testsuite/gcc.dg/pr23911.c llvm-gcc-4.2/trunk/gcc/testsuite/gcc.dg/pure-1.c llvm-gcc-4.2/trunk/gcc/testsuite/gcc.dg/strict-overflow-1.c llvm-gcc-4.2/trunk/gcc/testsuite/gcc.dg/strict-overflow-2.c llvm-gcc-4.2/trunk/gcc/testsuite/gcc.dg/strict-overflow-4.c Modified: llvm-gcc-4.2/trunk/gcc/testsuite/gcc.dg/builtins-43.c URL: http://llvm.org/viewvc/llvm-project/llvm-gcc-4.2/trunk/gcc/testsuite/gcc.dg/builtins-43.c?rev=43875r1=43874r2=43875view=diff == --- llvm-gcc-4.2/trunk/gcc/testsuite/gcc.dg/builtins-43.c (original) +++ llvm-gcc-4.2/trunk/gcc/testsuite/gcc.dg/builtins-43.c Wed Nov 7 20:22:14 2007 @@ -1,5 +1,7 @@ /* { dg-do compile } */ /* { dg-options -O1 -fno-trapping-math -fdump-tree-gimple -fdump-tree-optimized } */ +/* LLVM LOCAL test not applicable */ +/* { dg-require-fdump } */ extern void f(int); extern void link_error (); Modified: llvm-gcc-4.2/trunk/gcc/testsuite/gcc.dg/builtins-44.c URL: http://llvm.org/viewvc/llvm-project/llvm-gcc-4.2/trunk/gcc/testsuite/gcc.dg/builtins-44.c?rev=43875r1=43874r2=43875view=diff == --- llvm-gcc-4.2/trunk/gcc/testsuite/gcc.dg/builtins-44.c (original) +++ llvm-gcc-4.2/trunk/gcc/testsuite/gcc.dg/builtins-44.c Wed Nov 7 20:22:14 2007 @@ -1,5 +1,7 @@ /* { dg-do compile } */ /* { dg-options -O1 -fno-trapping-math -fdump-tree-optimized } */ +/* LLVM LOCAL test not applicable */ +/* { dg-require-fdump } */ extern void f(int); extern void link_error (); Modified: llvm-gcc-4.2/trunk/gcc/testsuite/gcc.dg/builtins-45.c URL:
[llvm-commits] [llvm-gcc-4.2] r43877 - in /llvm-gcc-4.2/trunk/gcc/testsuite: gcc.dg/torture/builtin-convert-4.c gcc.target/i386/reload-1.c gcc.target/i386/vectorize1.c obj-c++.dg/stubify-2.mm objc.dg/
Author: johannes Date: Wed Nov 7 20:30:05 2007 New Revision: 43877 URL: http://llvm.org/viewvc/llvm-project?rev=43877view=rev Log: disable yet more testcases Modified: llvm-gcc-4.2/trunk/gcc/testsuite/gcc.dg/torture/builtin-convert-4.c llvm-gcc-4.2/trunk/gcc/testsuite/gcc.target/i386/reload-1.c llvm-gcc-4.2/trunk/gcc/testsuite/gcc.target/i386/vectorize1.c llvm-gcc-4.2/trunk/gcc/testsuite/obj-c++.dg/stubify-2.mm llvm-gcc-4.2/trunk/gcc/testsuite/objc.dg/stubify-2.m Modified: llvm-gcc-4.2/trunk/gcc/testsuite/gcc.dg/torture/builtin-convert-4.c URL: http://llvm.org/viewvc/llvm-project/llvm-gcc-4.2/trunk/gcc/testsuite/gcc.dg/torture/builtin-convert-4.c?rev=43877r1=43876r2=43877view=diff == --- llvm-gcc-4.2/trunk/gcc/testsuite/gcc.dg/torture/builtin-convert-4.c (original) +++ llvm-gcc-4.2/trunk/gcc/testsuite/gcc.dg/torture/builtin-convert-4.c Wed Nov 7 20:30:05 2007 @@ -9,6 +9,8 @@ /* { dg-options -ftrapping-math -fdump-tree-original } */ /* { dg-options -ftrapping-math -fdump-tree-original -mmacosx-version-min=10.3 { target powerpc-*-darwin* } } */ /* { dg-options -ftrapping-math -fdump-tree-original -std=c99 { target *-*-solaris2* } } */ +/* LLVM LOCAL test not applicable */ +/* { dg-require-fdump } */ #include ../builtins-config.h Modified: llvm-gcc-4.2/trunk/gcc/testsuite/gcc.target/i386/reload-1.c URL: http://llvm.org/viewvc/llvm-project/llvm-gcc-4.2/trunk/gcc/testsuite/gcc.target/i386/reload-1.c?rev=43877r1=43876r2=43877view=diff == --- llvm-gcc-4.2/trunk/gcc/testsuite/gcc.target/i386/reload-1.c (original) +++ llvm-gcc-4.2/trunk/gcc/testsuite/gcc.target/i386/reload-1.c Wed Nov 7 20:30:05 2007 @@ -1,6 +1,8 @@ /* APPLE LOCAL file mainline 2007-04-24 5122634 */ /* { dg-do compile { target i?86-*-* } } */ /* { dg-options -O3 -msse2 -fdump-rtl-csa } */ +/* LLVM LOCAL fdump not supported */ +/* { dg-require-fdump } */ /* { dg-skip-if { i?86-*-* } { -m64 } { } } */ /* { dg-final { scan-rtl-dump deleted 5 dead insns csa } }*/ #include emmintrin.h Modified: llvm-gcc-4.2/trunk/gcc/testsuite/gcc.target/i386/vectorize1.c URL: http://llvm.org/viewvc/llvm-project/llvm-gcc-4.2/trunk/gcc/testsuite/gcc.target/i386/vectorize1.c?rev=43877r1=43876r2=43877view=diff == --- llvm-gcc-4.2/trunk/gcc/testsuite/gcc.target/i386/vectorize1.c (original) +++ llvm-gcc-4.2/trunk/gcc/testsuite/gcc.target/i386/vectorize1.c Wed Nov 7 20:30:05 2007 @@ -1,5 +1,7 @@ /* PR middle-end/28915 */ /* { dg-options -msse -O2 -ftree-vectorize -fdump-tree-vect } */ +/* LLVM LOCAL test not applicable */ +/* { dg-require-fdump } */ extern char lanip[3][40]; typedef struct Modified: llvm-gcc-4.2/trunk/gcc/testsuite/obj-c++.dg/stubify-2.mm URL: http://llvm.org/viewvc/llvm-project/llvm-gcc-4.2/trunk/gcc/testsuite/obj-c%2B%2B.dg/stubify-2.mm?rev=43877r1=43876r2=43877view=diff == --- llvm-gcc-4.2/trunk/gcc/testsuite/obj-c++.dg/stubify-2.mm (original) +++ llvm-gcc-4.2/trunk/gcc/testsuite/obj-c++.dg/stubify-2.mm Wed Nov 7 20:30:05 2007 @@ -4,6 +4,8 @@ /* { dg-do compile { target *-*-darwin* } } */ /* { dg-options -mdynamic-no-pic -fdump-rtl-jump } */ +/* LLVM LOCAL test not applicable */ +/* { dg-require-fdump } */ typedef struct objc_object { } *id ; int x = 41 ; Modified: llvm-gcc-4.2/trunk/gcc/testsuite/objc.dg/stubify-2.m URL: http://llvm.org/viewvc/llvm-project/llvm-gcc-4.2/trunk/gcc/testsuite/objc.dg/stubify-2.m?rev=43877r1=43876r2=43877view=diff == --- llvm-gcc-4.2/trunk/gcc/testsuite/objc.dg/stubify-2.m (original) +++ llvm-gcc-4.2/trunk/gcc/testsuite/objc.dg/stubify-2.m Wed Nov 7 20:30:05 2007 @@ -5,6 +5,8 @@ /* { dg-do compile { target *-*-darwin* } } */ /* { dg-skip-if { i?86-*-darwin* } } */ /* { dg-options -mdynamic-no-pic -fdump-rtl-jump } */ +/* LLVM LOCAL test not applicable */ +/* { dg-require-fdump } */ /* APPLE LOCAL radar 4894756 */ /* { dg-skip-if { *-*-darwin* } { -m64 } { } } */ ___ llvm-commits mailing list llvm-commits@cs.uiuc.edu http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits
Re: [llvm-commits] [llvm-gcc-4.2] r43870 - in /llvm-gcc-4.2/trunk/gcc/testsuite/g++.dg/gomp: atomic-10.C atomic-3.C atomic-9.C barrier-1.C block-0.C critical-1.C flush-1.C for-10.C for-13.C for-4.C fo
URL: http://llvm.org/viewvc/llvm-project?rev=43870view=rev Log: Disable some more tests for llvm. Hey Dale, = = = = = = = = == --- llvm-gcc-4.2/trunk/gcc/testsuite/g++.dg/gomp/atomic-10.C (original) +++ llvm-gcc-4.2/trunk/gcc/testsuite/g++.dg/gomp/atomic-10.C Wed Nov 7 19:54:46 2007 @@ -1,6 +1,8 @@ // PR middle-end/28046 // { dg-do compile } // { dg-options -fopenmp -fdump-tree-gimple } +/* LLVM LOCAL test not applicable */ +/* { dg-require-fdump } */ does -fdump-tree-gimple not work? I thought were we running the gimplifier? -Chris ___ llvm-commits mailing list llvm-commits@cs.uiuc.edu http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits
Re: [llvm-commits] [llvm] r43844 - in /llvm/trunk/lib/Target/X86: X86RegisterInfo.cpp X86RegisterInfo.td
On Nov 7, 2007, at 2:01 PM, Anton Korobeynikov wrote: Dale, Complete conditionalization of Dwarf reg numbers. This looks pretty hackish. The numbers used before were definitely correct for x86-32/linux. I dunno about darwin, but it looks like turning everything on darwin to be default implementation is not a good approach. :) The numbers were wrong from Darwin and x86-64. I think the approach is fine. But pleasejust remove the numbers from X86RegisterInfo.td since they are wrong for some of the targets. It's misleading to leave them in. And, if you need to conditionalize depending on target, table approach (like in i386.h) will be definitely better, otherwise we'll end with spaghetti-like code, when all supported targets will be in place. That's good advice. Is that easy to do, Dale? Evan -- With best regards, Anton Korobeynikov. Faculty of Mathematics Mechanics, Saint Petersburg State University. ___ llvm-commits mailing list llvm-commits@cs.uiuc.edu http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits ___ llvm-commits mailing list llvm-commits@cs.uiuc.edu http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits
Re: [llvm-commits] [llvm-gcc-4.2] r43870 - in /llvm-gcc-4.2/trunk/gcc/testsuite/g++.dg/gomp: atomic-10.C atomic-3.C atomic-9.C barrier-1.C block-0.C critical-1.C flush-1.C for-10.C for-13.C for-4.C fo
On Nov 7, 2007, at 8:47 PM, Dale Johannesen wrote: // PR middle-end/28046 // { dg-do compile } // { dg-options -fopenmp -fdump-tree-gimple } +/* LLVM LOCAL test not applicable */ +/* { dg-require-fdump } */ does -fdump-tree-gimple not work? I thought were we running the gimplifier? So it does. That's annoying, I'll have to go through the -fdump options one by bloody one I think gimple and tree-original are the only ones that llvm cares about. IIRC you don't care much past that (cgraph might be the only other one, but i doubt it). -eric ___ llvm-commits mailing list llvm-commits@cs.uiuc.edu http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits