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

Attachment: extract_bits_with_simpnode.diff
Description: extract_bits_with_simpnode.diff

class TestClass
{
    virtual ~TestClass();
};


TestClass::~TestClass()
{
}


Attachment: test_virt_destr_with_dead_code.s
Description: test_virt_destr_with_dead_code.s

Attachment: 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

Reply via email to