[PATCH] Carry facts about nullness and undef across GC relocation

Philip Reames listmail at philipreames.com
Thu Dec 11 01:26:14 PST 2014


Hi sanjoy,

This change implements four basic optimizations:
- If a relocated value isn't used, it doesn't need to be relocated.
- If the value being relocated is null, relocation doesn't change that.  (Technically, this might be collector specific.   I don't know of one which it doesn't work for though.)
- If the value being relocated is undef, the relocation is meaningless.
- If the value being relocated was known nonnull, the relocated pointer also isn't null.  (Since it points to the same source language object.)

I outlined other planned work in comments.

http://reviews.llvm.org/D6600

Files:
  include/llvm/IR/Statepoint.h
  lib/Transforms/InstCombine/InstCombineCalls.cpp
  test/Transforms/InstCombine/statepoint.ll

EMAIL PREFERENCES
  http://reviews.llvm.org/settings/panel/emailpreferences/
-------------- next part --------------
A non-text attachment was scrubbed...
Name: D6600.17136.patch
Type: text/x-patch
Size: 4667 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20141211/9cb6656f/attachment.bin>


More information about the llvm-commits mailing list