Compiler crashing?

If you have a simple question and just want an answer.
zivke
Member
Posts: 11
Joined: Fri Aug 01, 2014 12:21 pm

Compiler crashing?

Post by zivke »

I am working on a application that uses arrays of interfaces and combinable functions. Here is the simplified example: https://github.com/zivke/app_somanetcon ... iler-crash

I am having problems compiling it, as it always crashes the same way as long as I keep defining the counter_plugin function as combinable. Compiling this application produces this error:

Both operands to a binary operator are not of the same type!

  %delta = sub i64 %deref20, i32 %baseTime
Both operands to ICmp instruction are not of the same type!
  %cmpDelta = icmp sle i64 %delta, i32 %currentDelta
Stored value type does not match pointer operand type!
  store i64 %delta, i32* @__timer_delta
 i32Call parameter type does not match function signature!
  %deref20 = load i64* %frame.time
 i32  call void @llvm.xcore.setd.p1i8(i8 addrspace(1)* %timer18, i64 %deref20)
Both operands to a binary operator are not of the same type!
  %delta = sub i64 %deref19, i32 %baseTime
Both operands to ICmp instruction are not of the same type!
  %cmpDelta = icmp sle i64 %delta, i32 %currentDelta
Stored value type does not match pointer operand type!
  store i64 %delta, i32* @__timer_delta
 i32Call parameter type does not match function signature!
  %deref19 = load i64* %frame.time
 i32  call void @llvm.xcore.setd.p1i8(i8 addrspace(1)* %timer17, i64 %deref19)
Both operands to a binary operator are not of the same type!
  %delta = sub i64 %deref20, i32 %baseTime
Both operands to ICmp instruction are not of the same type!
  %cmpDelta = icmp sle i64 %delta, i32 %currentDelta
Stored value type does not match pointer operand type!
  store i64 %delta, i32* @__timer_delta
 i32Call parameter type does not match function signature!
  %deref20 = load i64* %frame.time
 i32  call void @llvm.xcore.setd.p1i8(i8 addrspace(1)* %timer18, i64 %deref20)
Both operands to a binary operator are not of the same type!
  %delta = sub i64 %deref19, i32 %baseTime
Both operands to ICmp instruction are not of the same type!
  %cmpDelta = icmp sle i64 %delta, i32 %currentDelta
Stored value type does not match pointer operand type!
  store i64 %delta, i32* @__timer_delta
 i32Call parameter type does not match function signature!
  %deref19 = load i64* %frame.time
 i32  call void @llvm.xcore.setd.p1i8(i8 addrspace(1)* %timer17, i64 %deref19)
LLVM ERROR: Broken module found, compilation aborted!
xmake[1]: *** [.build_Release/src/counter_plugin.xc.o] Error 1
xmake: *** [bin/Release/app_somanetconnect_slave.xe] Error 2
 
I might be wrong, but this looks like the compiler has crashed. Any help is appreciated.
 
Thanks
User avatar
larry
Respected Member
Posts: 275
Joined: Fri Mar 12, 2010 6:03 pm

Post by larry »

Definitely a bug. Can you report it on the XMOS website please? Go to Design Support, Support, TECHNICAL ENQUIRIES - SEND US A TICKET, bug report, Report a Bug.

https://www.xmos.com/rt3/SelfService/Cr ... t-bug.html