[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