[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