Hi I would like a code review for the attached file "extract_bits_with_simpnode.diff". This is a fix for a recent regression which is seen with virtual destructors. A test case, test_virt_destr.cpp, is attached.
The issue is that we are not removing dead code (and unreachable code) in WOPT in case the if-test contains EXTRACT_BITS. I am introducing a simp_node function that bypasses EXTRACT_BITS when it is extracting the last bit of a Boolean constant. This plugs in to the simp_node framework and further simplifications are also possible, in the future. The assembly with and without the patch are test_virt_destr_with_fix.s and test_virt_destr_with_dead_code.s respectively. Please look at the destructor functions: _ZN9TestClassD1Ev, _ZN9TestClassD2Ev for the dead code. Please let me know. Regards, Ram AMD Open Source Compiler Engineering, Bangalore, India
extract_bits_with_simpnode.diff
Description: extract_bits_with_simpnode.diff
class TestClass { virtual ~TestClass(); }; TestClass::~TestClass() { }
test_virt_destr_with_dead_code.s
Description: test_virt_destr_with_dead_code.s
test_virt_destr_with_fix.s
Description: test_virt_destr_with_fix.s
------------------------------------------------------------------------------ Increase Visibility of Your 3D Game App & Earn a Chance To Win $500! Tap into the largest installed PC base & get more eyes on your game by optimizing for Intel(R) Graphics Technology. Get started today with the Intel(R) Software Partner Program. Five $500 cash prizes are up for grabs. http://p.sf.net/sfu/intelisp-dev2dev
_______________________________________________ Open64-devel mailing list Open64-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/open64-devel