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