[PATCH] D60298: Fix a hang when lowering __builtin_dynamic_object_size

Erik Pilkington via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Thu Apr 4 17:43:18 PDT 2019


erik.pilkington created this revision.
erik.pilkington added reviewers: jfb, george.burgess.iv, ahatanak.
Herald added subscribers: dexonsmith, jkorous, hiraditya.
Herald added a project: LLVM.

If the ObjectSizeOffsetEvaluator fails to fold the object size call, then it may litter some unused instructions in the function. When done repeatably in InstCombine, this results in an infinite loop. Fix this by tracking the set of instructions that were inserted, then removing them on failure.

Fixes rdar://49172227

Thanks!
Erik


Repository:
  rL LLVM

https://reviews.llvm.org/D60298

Files:
  llvm/include/llvm/Analysis/MemoryBuiltins.h
  llvm/lib/Analysis/MemoryBuiltins.cpp
  llvm/test/Instrumentation/BoundsChecking/phi.ll
  llvm/test/Transforms/InstCombine/builtin-dynamic-object-size.ll

-------------- next part --------------
A non-text attachment was scrubbed...
Name: D60298.193815.patch
Type: text/x-patch
Size: 5235 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20190405/4522a634/attachment.bin>


More information about the llvm-commits mailing list