Open Quuxplusone opened 6 years ago
Bugzilla Link | PR37693 |
Status | NEW |
Importance | P enhancement |
Reported by | Sanjay Patel (spatel+llvm@rotateright.com) |
Reported on | 2018-06-05 11:33:09 -0700 |
Last modified on | 2018-06-08 07:42:20 -0700 |
Version | trunk |
Hardware | PC All |
CC | llvm-bugs@lists.llvm.org, llvm-dev@redking.me.uk, sam.parker@arm.com |
Fixed by commit(s) | |
Attachments | |
Blocks | |
Blocked by | |
See also | PR37060, PR37667 |
Hi Sanjay,
Do you still have this issue? If so, I'll get on my mac and have a look.
There's still a bug here. It won't repro for an x86 target now that the
transform doesn't fire there, but I still assert when targeting aarch64 for
example:
$ llc -o - 37060func.ll -debug -mtriple=aarch64
...
Combining: t12: i32 = and t10, Constant:i32<255>
Backwards propagate AND: t12: i32 = and t10, Constant:i32<255>
First, need to fix up: t21: i32 = mul t20, t4
Creating new node: t36: i32 = and t21, Constant:i32<255>
Propagate AND back to: t9: i32,ch = load<(load 4 from %ir.Assertion failed: (F
&& "No function incorporated"), function getLocalSlot, file
/Users/spatel/myllvm/llvm/lib/IR/AsmWriter.cpp, line 844
Interestingly, the bug isn't visible if I remove the BB label ("entry") and rename the temp variables. Also, I don't think this is a mac-specific bug, but you're correct that I'm testing on a Mac with a release+asserts build of llc.