Here is a much simpler test case: SingleSource/UnitTests/2005-05-12-Int64ToFP.c:
I am still trying to figure out what exactly is wrong. Evan On Jul 5, 2007, at 4:33 PM, Bill Wendling wrote: > On 7/5/07, Evan Cheng <[EMAIL PROTECTED]> wrote: >> >> On Jul 5, 2007, at 7:49 AM, Dan Gohman wrote: >> >>> Hi Evan, >>> >>> I'm currently testing the attached patch, which seems to fix the >>> problems for PPC. It extends getCopyToParts and getCopyFromParts >>> to have an extra parameter to indicate when endian-swapping is >>> needed. I don't have access to a PPC test environment; I've included >>> a few trivial regression tests in this patch; I'll do some more >>> soon. >> >> Thanks. I'll do some testing. >> >>> >>> Copying to virtual registers is always done in little-endian order, >>> while copying to physical registers, arguments, or return values, >>> is done in target-endian order. I wonder if it would make sense to >>> change to using target-endian order for virtual registers as well? >> >> I don't think it matters, does it? If it makes the code cleaner then >> please do so. >> > FWIW, the PPC bootstrap is still failing with this patch. It's doing > so at an earlier stage now. Here's part of the log file that shows the > failure: > > # When building multilibbed target libraries, all the required > # When building multilibbed target libraries, all the required > # libraries are expected to exist in the multilib directory. > MLIBS=` ./xgcc -B./ > -B/usr/local/llvm-gcc-install/powerpc-apple-darwin9/bin/ -isystem > /usr/local/llvm-gcc-install/powerpc-apple-darwin9/include -isystem > /usr/local/llvm-gcc-install/powerpc-apple-darwin9/sys-include > -L/Volumes/SandBox/Clean/llvm-1040-01.roots/llvm-1040-01~obj/obj- > powerpc-powerpc/gcc/../ld > --print-multi-lib \ > | sed -e 's/;.*$//' -e '/^\.$/d'` ; \ > for mlib in $MLIBS ; do \ > rm -f ${mlib}/libgcc_s.10.4.dylib || exit 1 ; \ > ln -s ../libgcc_s.10.4.dylib ${mlib}/libgcc_s.10.4.dylib || exit > 1 ; \ > done > # libraries are expected to exist in the multilib directory. > MLIBS=` ./xgcc -B./ > -B/usr/local/llvm-gcc-install/powerpc-apple-darwin9/bin/ -isystem > /usr/local/llvm-gcc-install/powerpc-apple-darwin9/include -isystem > /usr/local/llvm-gcc-install/powerpc-apple-darwin9/sys-include > -L/Volumes/SandBox/Clean/llvm-1040-01.roots/llvm-1040-01~obj/obj- > powerpc-powerpc/gcc/../ld > --print-multi-lib \ > | sed -e 's/;.*$//' -e '/^\.$/d'` ; \ > for mlib in $MLIBS ; do \ > rm -f ${mlib}/libgcc_s.10.5.dylib || exit 1 ; \ > ln -s ../libgcc_s.10.5.dylib ${mlib}/libgcc_s.10.5.dylib || exit > 1 ; \ > done > MLIBS=` ./xgcc -B./ > -B/usr/local/llvm-gcc-install/powerpc-apple-darwin9/bin/ -isystem > /usr/local/llvm-gcc-install/powerpc-apple-darwin9/include -isystem > /usr/local/llvm-gcc-install/powerpc-apple-darwin9/sys-include > -L/Volumes/SandBox/Clean/llvm-1040-01.roots/llvm-1040-01~obj/obj- > powerpc-powerpc/gcc/../ld > --print-multi-lib \ > | sed -e 's/;.*$//' -e '/^\.$/d'` ; \ > for mlib in '' $MLIBS ; do \ > strip -o libgcc_s.10.5.dylib_T${mlib} \ > -s /Volumes/SandBox/Clean/llvm-1040-01.roots/llvm-1040-01~obj/ > src/gcc/config/rs6000/darwin-libgcc.10.5.ver > -c -u \ > ./${mlib}/libgcc_s.1.dylib.tmp || exit 1 ; \ > done > MLIBS=` ./xgcc -B./ > -B/usr/local/llvm-gcc-install/powerpc-apple-darwin9/bin/ -isystem > /usr/local/llvm-gcc-install/powerpc-apple-darwin9/include -isystem > /usr/local/llvm-gcc-install/powerpc-apple-darwin9/sys-include > -L/Volumes/SandBox/Clean/llvm-1040-01.roots/llvm-1040-01~obj/obj- > powerpc-powerpc/gcc/../ld > --print-multi-lib \ > | sed -e 's/;.*$//' -e '/^\.$/d'` ; \ > for mlib in '' $MLIBS ; do \ > strip -o libgcc_s.10.4.dylib_T${mlib} \ > -s /Volumes/SandBox/Clean/llvm-1040-01.roots/llvm-1040-01~obj/ > src/gcc/config/rs6000/darwin-libgcc.10.4.ver > -c -u \ > ./${mlib}/libgcc_s.1.dylib.tmp || exit 1 ; \ > done > lipo -output libgcc_s.10.4.dylib -create libgcc_s.10.4.dylib_T* > lipo -output libgcc_s.10.5.dylib -create libgcc_s.10.5.dylib_T* > rm libgcc_s.10.5.dylib_T* > rm libgcc_s.10.4.dylib_T* > # When building multilibbed target libraries, all the required > # libraries are expected to exist in the multilib directory. > MLIBS=` ./xgcc -B./ > -B/usr/local/llvm-gcc-install/powerpc-apple-darwin9/bin/ -isystem > /usr/local/llvm-gcc-install/powerpc-apple-darwin9/include -isystem > /usr/local/llvm-gcc-install/powerpc-apple-darwin9/sys-include > -L/Volumes/SandBox/Clean/llvm-1040-01.roots/llvm-1040-01~obj/obj- > powerpc-powerpc/gcc/../ld > --print-multi-lib \ > | sed -e 's/;.*$//' -e '/^\.$/d'` ; \ > for mlib in '' $MLIBS ; do \ > cp ./${mlib}/libgcc_s.1.dylib.tmp \ > ./libgcc_s.1.dylib_T_${mlib} || exit 1 ; \ > done > lipo -output libgcc_s.1.dylib \ > -create libgcc_s.1.dylib_T* > rm libgcc_s.1.dylib_T* > make[3]: *** [libgcc_s.1.dylib] Segmentation fault > make[3]: *** Deleting file `libgcc_s.1.dylib' > rm cpp.pod gfdl.pod fsf-funding.pod gcov.pod gcc.pod gpl.pod > make[2]: *** [stage1_build] Error 2 > make[1]: *** [bootstrap] Error 2 > + exit 1 > make: *** [install] Error 1 > > -bw > _______________________________________________ > 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