>> I don't think my backend is modified enough from the MBlaze backend that is >> in the release to be causing this error. I am however looking through the >> various files of the backend to try to find where the calling convention >> might be causing problems with f32 data types. > Form the backtrace it seems like you haven't defined how to return f32 > stuff out of the function.Could it be that the microblaze backend only has 2 return registers and we've written a function call that wants 3? If that could be the problem I'd guess it is highly likely because a lot of our code if 3 element vectors being passed around. Josef
> Could it be that the microblaze backend only has 2 return registers and we've written a function call that wants 3? If that could be the problem I'd guess it is highly likely because a lot of our code if 3 element vectors being passed around.Maybe -- With best regards, Anton Korobeynikov Faculty of Mathematics and Mechanics, Saint Petersburg State University
Okay, I've done a lot more testing and I now have a .bc file that compiles for x86, sparc, mips but refuses to compile for the mblaze and powerPC backends because of the calling convention. Is there anyone that would know how to fix the microblaze calling convention or point me in the right direction on how to fix it? The lines in the .bc that I believe to be causing the problem are the following: %196 = call %0 @_Z13gatherDiffuseRK3vecS_S1_RKfS3_Pii(%struct.vec* %normal, double %tmp629, float %174, %struct.vec* %light_position, float* %nohit, float* %epsilon, i32* %66, i32 %5) nounwind and define linkonce_odr %0 @_Z13gatherDiffuseRK3vecS_S1_RKfS3_Pii(%struct.vec* nocapture %normal, double %hit_point.0, float %hit_point.1, %struct.vec* nocapture %light_position, float* nocapture %nohit, float* nocapture %epsilon, i32* nocapture %stack, i32 %start_bvh) nounwind inlinehint ssp { which then goes into the body of the function. Josef
Hi Josef,> Okay, I've done a lot more testing and I now have a .bc file that compiles for x86, sparc, mips but refuses to compile for the mblaze and powerPC backends because of the calling convention. Is there anyone that would know how to fix the microblaze calling convention or point me in the right direction on how to fix it?what does "refuses to compile" mean? I.e. what error do you get? Ciao, Duncan.> > The lines in the .bc that I believe to be causing the problem are the following: > > %196 = call %0 @_Z13gatherDiffuseRK3vecS_S1_RKfS3_Pii(%struct.vec* %normal, double %tmp629, float %174, %struct.vec* %light_position, float* %nohit, float* %epsilon, i32* %66, i32 %5) nounwind > > and > > define linkonce_odr %0 @_Z13gatherDiffuseRK3vecS_S1_RKfS3_Pii(%struct.vec* nocapture %normal, double %hit_point.0, float %hit_point.1, %struct.vec* nocapture %light_position, float* nocapture %nohit, float* nocapture %epsilon, i32* nocapture %stack, i32 %start_bvh) nounwind inlinehint ssp { > > which then goes into the body of the function. > > Josef > _______________________________________________ > LLVM Developers mailing list > LLVMdev at cs.uiuc.edu http://llvm.cs.uiuc.edu > http://lists.cs.uiuc.edu/mailman/listinfo/llvmdev