Reid Spencer wrote:> Volodya, > > I think you may need to update your CFE and rebuild. I compiled the test > using my local build and I didn't get the results you see below. I'm > also very surprised to see this output. The first %tmp.11 should have > been %tmp.1 .. not sure how it got corrupted. In any event, the > attachment is obviously generated by code that runs quite differently > because the virtual register names used are quite different from what > you have below. If you updated last week sometime, is it possible you > got caught between some of Chris' "determinism" changes? > > Anyway, try an update and let us know how it goes.This still happens after update and rebuild: $ /home/ghost/build/llvm-gcc/install/bin/gcc -g -S -fno-inline -o test.llvm tests/2003-05-26-Shorts.c $ gccas -disable-inlining test.llvm -o test.bc $ llvm-dis -f test.bc $ less test.ll ........ int %main(int %argc, sbyte** %argv) { entry: call void %__main( ) %tmp.11 = call ulong %getL( ) ; <ulong> [#uses=16] %tmp.3 = cast ulong %tmp.11 to long ; <long> [#uses6] %tmp.5 = cast ulong %tmp.11 to uint ; <uint> [#uses6] %tmp.7 = cast ulong %tmp.11 to int ; <int> [#uses=7 ] %tmp.9 = cast ulong %tmp.11 to ushort ; <ushort> [#use s=3] %tmp.11 = cast ulong %tmp.11 to short - Volodya
Okay, let me test with exactly your options and I'll let you know what I get. Reid. On Wed, 7 Jul 2004 19:53:15 +0400 Vladimir Prus <ghost at cs.msu.su> wrote:> Reid Spencer wrote: >> Volodya, >> >> I think you may need to update your CFE and rebuild. I compiled the test >> using my local build and I didn't get the results you see below. I'm >> also very surprised to see this output. The first %tmp.11 should have >> been %tmp.1 .. not sure how it got corrupted. In any event, the >> attachment is obviously generated by code that runs quite differently >> because the virtual register names used are quite different from what >> you have below. If you updated last week sometime, is it possible you >> got caught between some of Chris' "determinism" changes? >> >> Anyway, try an update and let us know how it goes. > > This still happens after update and rebuild: > > $ /home/ghost/build/llvm-gcc/install/bin/gcc -g -S -fno-inline -o >test.llvm > tests/2003-05-26-Shorts.c > $ gccas -disable-inlining test.llvm -o test.bc > $ llvm-dis -f test.bc > $ less test.ll > ........ > int %main(int %argc, sbyte** %argv) { > entry: > call void %__main( ) > %tmp.11 = call ulong %getL( ) ; <ulong> [#uses=16] > %tmp.3 = cast ulong %tmp.11 to long ; <long> [#uses> 6] > %tmp.5 = cast ulong %tmp.11 to uint ; <uint> [#uses> 6] > %tmp.7 = cast ulong %tmp.11 to int ; <int> [#uses=7 > ] > %tmp.9 = cast ulong %tmp.11 to ushort ; <ushort> [#use > s=3] > %tmp.11 = cast ulong %tmp.11 to short > > > - Volodya > > _______________________________________________ > LLVM Developers mailing list > LLVMdev at cs.uiuc.edu http://llvm.cs.uiuc.edu > http://mail.cs.uiuc.edu/mailman/listinfo/llvmdev
Okay, I've replicated your results, but I don't think there's an error here, its just not nice output from the disassembler. The first %tmp.ll is of type long. The second one is of type short. I think that's valid for LLVM. That is, the SSA form depends on both the type and name of the virtual register. In any event, llvm-as seems to compile the llvm-dis output just fine. Make sense? Reid. On Wed, 07 Jul 2004 12:01:15 -0400 "Reid Spencer" <reid at x10sys.com> wrote:> Okay, let me test with exactly your options and I'll let you know what I >get. > > Reid. > > On Wed, 7 Jul 2004 19:53:15 +0400 > Vladimir Prus <ghost at cs.msu.su> wrote: >> Reid Spencer wrote: >>> Volodya, >>> >>> I think you may need to update your CFE and rebuild. I compiled the test >>> using my local build and I didn't get the results you see below. I'm >>> also very surprised to see this output. The first %tmp.11 should have >>> been %tmp.1 .. not sure how it got corrupted. In any event, the >>> attachment is obviously generated by code that runs quite differently >>> because the virtual register names used are quite different from what >>> you have below. If you updated last week sometime, is it possible you >>> got caught between some of Chris' "determinism" changes? >>> >>> Anyway, try an update and let us know how it goes. >> >> This still happens after update and rebuild: >> >> $ /home/ghost/build/llvm-gcc/install/bin/gcc -g -S -fno-inline -o >>test.llvm >> tests/2003-05-26-Shorts.c >> $ gccas -disable-inlining test.llvm -o test.bc >> $ llvm-dis -f test.bc >> $ less test.ll >> ........ >> int %main(int %argc, sbyte** %argv) { >> entry: >> call void %__main( ) >> %tmp.11 = call ulong %getL( ) ; <ulong> [#uses=16] >> %tmp.3 = cast ulong %tmp.11 to long ; <long> [#uses>> 6] >> %tmp.5 = cast ulong %tmp.11 to uint ; <uint> [#uses>> 6] >> %tmp.7 = cast ulong %tmp.11 to int ; <int> [#uses=7 >> ] >> %tmp.9 = cast ulong %tmp.11 to ushort ; <ushort> [#use >> s=3] >> %tmp.11 = cast ulong %tmp.11 to short >> >> >> - Volodya >> >> _______________________________________________ >> LLVM Developers mailing list >> LLVMdev at cs.uiuc.edu http://llvm.cs.uiuc.edu >> http://mail.cs.uiuc.edu/mailman/listinfo/llvmdev > > _______________________________________________ > LLVM Developers mailing list > LLVMdev at cs.uiuc.edu http://llvm.cs.uiuc.edu > http://mail.cs.uiuc.edu/mailman/listinfo/llvmdev