Branches

int-tag-untag-as-operations

View source
int-tag-untag-as-operations
Author Commit Message Labels Comments Date
250+ commits behind default.
Carl Friedrich Bolz
treat ADC like ADD
Carl Friedrich Bolz
fix test_rerased in test_ajit
Carl Friedrich Bolz
transplant 3eb981d2713e from type-specialized-instances
timfel
fix test_lloperation.py::test_canfold_opimpl_complete
timfel
fix typo
timfel
fix test_random for tag operations
timfel
merge default
timfel
fix metainterp tests
timfel
merge default
Carl Friedrich Bolz
merge default
Carl Friedrich Bolz
merge default
Carl Friedrich Bolz
merge
Carl Friedrich Bolz
a tagged int cannot move
Carl Friedrich Bolz
test and fix: make constand-folding of int_tag not crash
Carl Friedrich Bolz
same fix is needed here
Carl Friedrich Bolz
refactor the int_tag/untag optimization to fit the new style
Carl Friedrich Bolz
can only untag odd ints
Carl Friedrich Bolz
merge default (breaks some things, will fix in the next commit)
Carl Friedrich Bolz
move an ll_assert around: cast_ptr_to_int *can* be used on an even pointer (to
Carl Friedrich Bolz
when the optimizer sees an int_tag operation, it can later remove the
Carl Friedrich Bolz
use int_untag for untagging too (duh)
Carl Friedrich Bolz
make tagged instances use the new operations as well
Carl Friedrich Bolz
merge default
Carl Friedrich Bolz
those are also not needed
Carl Friedrich Bolz
make all optimizeopt tests pass
Carl Friedrich Bolz
woops
Carl Friedrich Bolz
(arigo, cfbolz): implement int_tag, int_tag_ovf and int_untag in the x86 backend
Carl Friedrich Bolz
introduce an no-overflow-check variant int_tag for when the bounds-optimizer
Carl Friedrich Bolz
rename the operation to int_tag_ovf
Carl Friedrich Bolz
check that operations on untagged integers get their overflow checks removed
Carl Friedrich Bolz
add a more precise .mul operation on integer bounds.
Carl Friedrich Bolz
each the optimizer that int_tag and int_untag are each others opposites
Carl Friedrich Bolz
introduce int_tag (which can overflow) and int_untag
Carl Friedrich Bolz
a branch where to make int tagging and untagging explicit operations