Problem of using complier primitives __sync_fetch_and_sub with latest python-bcc version
- Dominant language
- C
- Stars
- 22.7k
- Forks
- 4.1k
- Avg merge
- 10d 4h
- Merged PRs (30d)
- 3
Description
Hi,
In order to perform atomic operation, I try to use the __sync_fetch_and_sub() complier primitive. However, while my program using such primitive, the compilation fails and errors shows up:
LLVM ERROR: Cannot select: 0x60e3008: i64,ch = AtomicLoadSub<(load store seq_cst 8 on %ir.152)> 0x6ad58c8:1, 0x6ad5248, 0x6ad58c8, /virtual/main.c:229:21 @[ /virtual/main.c:388:12 @[ /virtual/main.c:494:12 ] ]
0x6ad5248: i64 = add nuw 0x6ad5998, Constant:i64<8>, /virtual/main.c:229:54 @[ /virtual/main.c:388:12 @[ /virtual/main.c:494:12 ] ]
0x6ad5998: i64,ch = CopyFromReg 0x60df178, Register:i64 %9, /virtual/main.c:229:54 @[ /virtual/main.c:388:12 @[ /virtual/main.c:494:12 ] ]
0x60f73e0: i64 = Register %9
0x6ad5ba0: i64 = Constant<8>
0x6ad58c8: i64,ch = load<(load 8 from %ir.149, !tbaa !550)> 0x60df178, 0x60e2e68, undef:i64, /virtual/main.c:228:37 @[ /virtual/main.c:388:12 @[ /virtual/main.c:494:12 ] ]
0x60e2e68: i64,ch = CopyFromReg 0x60df178, Register:i64 %10, /virtual/main.c:221:33 @[ /virtual/main.c:388:12 @[ /virtual/main.c:494:12 ] ]
0x6ad5c08: i64 = Register %10
0x60e26b0: i64 = undef_**
However, while I delete the primitive my program runs correctly. I am very sure that such primitive cause the compilation crash.
I am using the python3-bcc version 0.26.0-cbec3b64, ubuntu kernel version 5.15.0-051500rc7-generic.
Is there any solution to such program or how can we solve the problem ?
Best Regards,
Johnny
Contributor guide
No contributing guide indexed for this repository
Assessment
This issue has not been assessed yet.