Bootstrap Failure

Hi all,

There’s been a recent bootstrap failure that might be covered up because of another failure. I just wanted to point this out so that people can take a look:

-bw

Here’s the failure from our buildbot:

Assertion failed: (DestReg == VirtReg && "Unknown load situation!"), function RewriteMBB, file /Volumes/Sandbox/Buildbot/llvm/build.llvm-gcc-x86_64-darwin10-selfhost/llvmCore.roots/llvmCore~obj/src/lib/CodeGen/VirtRegRewriter.cpp, line 2294.
/Volumes/Sandbox/Buildbot/llvm/build.llvm-gcc-x86_64-darwin10-selfhost/llvmgcc42.roots/llvmgcc42~obj/obj-i686-i686/./gcc/xgcc -B/Volumes/Sandbox/Buildbot/llvm/build.llvm-gcc-x86_64-darwin10-selfhost/llvmgcc42.roots/llvmgcc42~obj/obj-i686-i686/./gcc/ -B/Developer/usr/llvm-gcc-4.2/i686-apple-darwin10/bin/ -B/Developer/usr/llvm-gcc-4.2/i686-apple-darwin10/lib/ -isystem /Developer/usr/llvm-gcc-4.2/i686-apple-darwin10/include -isystem /Developer/usr/llvm-gcc-4.2/i686-apple-darwin10/sys-include -mmacosx-version-min=10.4 -O2  -O2 -g -O2   -DIN_GCC    -W -Wall -Wwrite-strings -Wstrict-prototypes -Wmissing-prototypes -Wold-style-definition  -isystem ./include  -fPIC -pipe -g -DHAVE_GTHR_DEFAULT -DIN_LIBGCC2 -D__GCC_FLOAT_NOT_NEEDED  -I. -I. -I/Volumes/Sandbox/Buildbot/llvm/build.llvm-gcc-x86_64-darwin10-selfhost/llvmgcc42.roots/llvmgcc42~obj/src/gcc -I/Volumes/Sandbox/Buildbot/llvm/build.llvm-gcc-x86_64-darwin10-selfhost/llvmgcc42.roots/llvmgcc42~obj/src/gcc/. -I/Volumes/Sandbox/Buildbot/llvm/build.llvm-gcc-x86_64-darwin10-selfhost/llvmgcc42.roots/llvmgcc42~obj/src/gcc/../include -I./../intl -I/Volumes/Sandbox/Buildbot/llvm/build.llvm-gcc-x86_64-darwin10-selfhost/llvmgcc42.roots/llvmgcc42~obj/src/gcc/../libcpp/include  -I/Volumes/Sandbox/Buildbot/llvm/build.llvm-gcc-x86_64-darwin10-selfhost/llvmgcc42.roots/llvmgcc42~obj/src/gcc/../libdecnumber -I../libdecnumber -I/Volumes/Sandbox/Buildbot/llvm/build.llvm-gcc-x86_64-darwin10-selfhost/llvmCore.roots/llvmCore~dst/Developer/usr/local/include -DL_ucmpdi2 -fvisibility=hidden -DHIDE_EXPORTS -c /Volumes/Sandbox/Buildbot/llvm/build.llvm-gcc-x86_64-darwin10-selfhost/llvmgcc42.roots/llvmgcc42~obj/src/gcc/libgcc2.c -o libgcc/./_ucmpdi2.o
/Volumes/Sandbox/Buildbot/llvm/build.llvm-gcc-x86_64-darwin10-selfhost/llvmgcc42.roots/llvmgcc42~obj/obj-i686-i686/./gcc/xgcc -B/Volumes/Sandbox/Buildbot/llvm/build.llvm-gcc-x86_64-darwin10-selfhost/llvmgcc42.roots/llvmgcc42~obj/obj-i686-i686/./gcc/ -B/Developer/usr/llvm-gcc-4.2/i686-apple-darwin10/bin/ -B/Developer/usr/llvm-gcc-4.2/i686-apple-darwin10/lib/ -isystem /Developer/usr/llvm-gcc-4.2/i686-apple-darwin10/include -isystem /Developer/usr/llvm-gcc-4.2/i686-apple-darwin10/sys-include -mmacosx-version-min=10.4 -O2  -O2 -g -O2   -DIN_GCC    -W -Wall -Wwrite-strings -Wstrict-prototypes -Wmissing-prototypes -Wold-style-definition  -isystem ./include  -fPIC -pipe -g -DHAVE_GTHR_DEFAULT -DIN_LIBGCC2 -D__GCC_FLOAT_NOT_NEEDED  -I. -I. -I/Volumes/Sandbox/Buildbot/llvm/build.llvm-gcc-x86_64-darwin10-selfhost/llvmgcc42.roots/llvmgcc42~obj/src/gcc -I/Volumes/Sandbox/Buildbot/llvm/build.llvm-gcc-x86_64-darwin10-selfhost/llvmgcc42.roots/llvmgcc42~obj/src/gcc/. -I/Volumes/Sandbox/Buildbot/llvm/build.llvm-gcc-x86_64-darwin10-selfhost/llvmgcc42.roots/llvmgcc42~obj/src/gcc/../include -I./../intl -I/Volumes/Sandbox/Buildbot/llvm/build.llvm-gcc-x86_64-darwin10-selfhost/llvmgcc42.roots/llvmgcc42~obj/src/gcc/../libcpp/include  -I/Volumes/Sandbox/Buildbot/llvm/build.llvm-gcc-x86_64-darwin10-selfhost/llvmgcc42.roots/llvmgcc42~obj/src/gcc/../libdecnumber -I../libdecnumber -I/Volumes/Sandbox/Buildbot/llvm/build.llvm-gcc-x86_64-darwin10-selfhost/llvmCore.roots/llvmCore~dst/Developer/usr/local/include -DL_clear_cache -fvisibility=hidden -DHIDE_EXPORTS -c /Volumes/Sandbox/Buildbot/llvm/build.llvm-gcc-x86_64-darwin10-selfhost/llvmgcc42.roots/llvmgcc42~obj/src/gcc/libgcc2.c -o libgcc/./_clear_cache.o
/Volumes/Sandbox/Buildbot/llvm/build.llvm-gcc-x86_64-darwin10-selfhost/llvmgcc42.roots/llvmgcc42~obj/src/gcc/libgcc2.c:1174: internal compiler error: Abort trap
Please submit a full bug report,
with preprocessed source if appropriate.
See <URL:http://developer.apple.com/bugreporter> for instructions.
make[5]: *** [libgcc/./_cmpdi2.o] Error 1
make[5]: *** Waiting for unfinished jobs....
Assertion failed: (DestReg == VirtReg && "Unknown load situation!"), function RewriteMBB, file /Volumes/Sandbox/Buildbot/llvm/build.llvm-gcc-x86_64-darwin10-selfhost/llvmCore.roots/llvmCore~obj/src/lib/CodeGen/VirtRegRewriter.cpp, line 2294.
/Volumes/Sandbox/Buildbot/llvm/build.llvm-gcc-x86_64-darwin10-selfhost/llvmgcc42.roots/llvmgcc42~obj/src/gcc/libgcc2.c:1193: internal compiler error: Abort trap
Please submit a full bug report,
with preprocessed source if appropriate.
See <URL:http://developer.apple.com/bugreporter> for instructions.
make[5]: *** [libgcc/./_ucmpdi2.o] Error 1
# APPLE LOCAL use -mlongcall for large text support
/Volumes/Sandbox/Buildbot/llvm/build.llvm-gcc-x86_64-darwin10-selfhost/llvmgcc42.roots/llvmgcc42~obj/obj-i686-i686/./gcc/xgcc -B/Volumes/Sandbox/Buildbot/llvm/build.llvm-gcc-x86_64-darwin10-selfhost/llvmgcc42.roots/llvmgcc42~obj/obj-i686-i686/./gcc/ -B/Developer/usr/llvm-gcc-4.2/i686-apple-darwin10/bin/ -B/Developer/usr/llvm-gcc-4.2/i686-apple-darwin10/lib/ -isystem /Developer/usr/llvm-gcc-4.2/i686-apple-darwin10/include -isystem /Developer/usr/llvm-gcc-4.2/i686-apple-darwin10/sys-include -O2 -g -O2   -DIN_GCC    -W -Wall -Wwrite-strings -Wstrict-prototypes -Wmissing-prototypes -Wold-style-definition  -isystem ./include  -I. -I. -I/Volumes/Sandbox/Buildbot/llvm/build.llvm-gcc-x86_64-darwin10-selfhost/llvmgcc42.roots/llvmgcc42~obj/src/gcc -I/Volumes/Sandbox/Buildbot/llvm/build.llvm-gcc-x86_64-darwin10-selfhost/llvmgcc42.roots/llvmgcc42~obj/src/gcc/. -I/Volumes/Sandbox/Buildbot/llvm/build.llvm-gcc-x86_64-darwin10-selfhost/llvmgcc42.roots/llvmgcc42~obj/src/gcc/../include -I./../intl -I/Volumes/Sandbox/Buildbot/llvm/build.llvm-gcc-x86_64-darwin10-selfhost/llvmgcc42.roots/llvmgcc42~obj/src/gcc/../libcpp/include  -I/Volumes/Sandbox/Buildbot/llvm/build.llvm-gcc-x86_64-darwin10-selfhost/llvmgcc42.roots/llvmgcc42~obj/src/gcc/../libdecnumber -I../libdecnumber -I/Volumes/Sandbox/Buildbot/llvm/build.llvm-gcc-x86_64-darwin10-selfhost/llvmCore.roots/llvmCore~dst/Developer/usr/local/include  -mlongcall \
	  -fno-tree-dominator-opts  \
	 \
	  -c /Volumes/Sandbox/Buildbot/llvm/build.llvm-gcc-x86_64-darwin10-selfhost/llvmgcc42.roots/llvmgcc42~obj/src/gcc/config/darwin-crt3.c -o crt3.o
make[4]: *** [stmp-multilib] Error 2
rm fsf-funding.pod gcov.pod gfdl.pod cpp.pod gcc.pod gpl.pod
make[3]: *** [all-stage1-gcc] Error 2
make[2]: *** [stage1-bubble] Error 2
make[1]: *** [all] Error 2

These are the likely culprits. David, it looks likely one of yours. Could you investigate please? And/or revert

  1. Changed by: greened
    Changed at: Thu 12 Nov 2009 12:14:53
    Revision: 87016
    Changed files:

    • include/llvm/CodeGen/AsmPrinter.hComments:
    Add comment flags so AsmPrinter can output additional information when
    emitting comments.  These flags carry semantic information not otherwise
    easily derivable from the IR text.
    
    
  2. Changed by: greened
    Changed at: Thu 12 Nov 2009 12:24:53
    Revision: 87018
    Changed files:

    • include/llvm/CodeGen/MachineInstr.hComments:
    Add AsmPrinter comment flags to machine instructions so that AsmPrinter
    can emit extra information in comments.
    
    
  3. Changed by: greened
    Changed at: Thu 12 Nov 2009 12:29:53
    Revision: 87019
    Changed files:

    • include/llvm/CodeGen/PseudoSourceValue.h
    • lib/CodeGen/PseudoSourceValue.cppComments:
    Make FixedStackPseudoSourceValue a first-class PseudoSourceValue by
    making it visible to clients and adding LLVM-style cast capability.
    This will be used by AsmPrinter to determine when to emit spill comments
    for an instruction.
    
    
  4. Changed by: d0k
    Changed at: Thu 12 Nov 2009 12:39:53
    Revision: 87020
    Changed files:

    • include/llvm/ADT/StringRef.h
    • lib/CodeGen/SelectionDAG/TargetLowering.cpp
    • lib/Support/StringRef.cpp
    • lib/Target/X86/X86ISelLowering.cpp
    • tools/bugpoint/ToolRunner.cppComments:
    Add compare_lower and equals_lower methods to StringRef. Switch all users of
    StringsEqualNoCase (from StringExtras.h) to it.
    
    
  5. Changed by: greened
    Changed at: Thu 12 Nov 2009 12:49:53
    Revision: 87022
    Changed files:

    • include/llvm/CodeGen/MachineFrameInfo.h
    • lib/CodeGen/MachineFunction.cpp
    • lib/CodeGen/PreAllocSplitting.cpp
    • lib/CodeGen/PrologEpilogInserter.cpp
    • lib/CodeGen/RegAllocLocal.cpp
    • lib/CodeGen/SelectionDAG/SelectionDAG.cpp
    • lib/CodeGen/SelectionDAG/SelectionDAGBuild.cpp
    • lib/CodeGen/VirtRegMap.cpp
    • lib/Target/ARM/ARMBaseRegisterInfo.cpp
    • lib/Target/ARM/ARMISelLowering.cpp
    • lib/Target/Alpha/AlphaISelLowering.cpp
    • lib/Target/Blackfin/BlackfinISelLowering.cpp
    • lib/Target/Blackfin/BlackfinRegisterInfo.cpp
    • lib/Target/CellSPU/SPUISelLowering.cpp
    • lib/Target/MSP430/MSP430ISelLowering.cpp
    • lib/Target/MSP430/MSP430RegisterInfo.cpp
    • lib/Target/Mips/MipsISelLowering.cpp
    • lib/Target/Mips/MipsRegisterInfo.cpp
    • lib/Target/PIC16/PIC16ISelLowering.cpp
    • lib/Target/PowerPC/PPCISelLowering.cpp
    • lib/Target/PowerPC/PPCRegisterInfo.cpp
    • lib/Target/Sparc/SparcISelLowering.cpp
    • lib/Target/SystemZ/SystemZISelLowering.cpp
    • lib/Target/X86/X86FastISel.cpp
    • lib/Target/X86/X86ISelLowering.cpp
    • lib/Target/X86/X86RegisterInfo.cpp
    • lib/Target/XCore/XCoreISelLowering.cpp
    • lib/Target/XCore/XCoreRegisterInfo.cppComments:
    Add a bool flag to StackObjects telling whether they reference spill
    slots.  The AsmPrinter will use this information to determine whether to
    print a spill/reload comment.
    
    Remove default argument values.  It's too easy to pass a wrong argument
    value when multiple arguments have default values.  Make everything
    explicit to trap bugs early.
    
    Update all targets to adhere to the new interfaces..
    
    

    Changed by: greened

  6. Changed at: Thu 12 Nov 2009 12:57:30
    Revision: 87026
    Changed files:

    • include/llvm/Target/TargetInstrInfo.h
    • lib/Target/X86/X86InstrInfo.cpp
    • lib/Target/X86/X86InstrInfo.hComments:
    Add hasLoadFromStackSlot and hasStoreToStackSlot to return whether a
    machine instruction loads or stores from/to a stack slot.  Unlike
    isLoadFromStackSlot and isStoreFromStackSlot, the instruction may be
    something other than a pure load/store (e.g. it may be an arithmetic
    operation with a memory operand).  This helps AsmPrinter determine when
    to print a spill/reload comment.
    
    This is only a hint since we may not be able to figure this out in all
    cases.  As such, it should not be relied upon for correctness.
    
    Implement for X86.  Return false by default for other architectures.
    
    

Hello, Bill

There's been a recent bootstrap failure that might be covered up because of
another failure. I just wanted to point this out so that people can take a
look:

Sounds like codegen problem. You should be able to distill a .bc
testcase & reproduce via llc...