[llvm] r179111 - Revert r176408 and r176408 to address PR15540.
Nuno Lopes
nunoplopes at sapo.pt
Tue Apr 16 23:01:14 PDT 2013
Yes, I guess you're right. Ok, so let's leave things as is for now.
Nuno
-----Original Message-----
From: Shuxin Yang
Sent: Monday, April 15, 2013 7:15 PM
Subject: Re: [llvm] r179111 - Revert r176408 and r176408 to address PR15540.
Hi, Nuno:
I re-read the code this morning, and try to recall the bug I fixed,
I'd take back what I said as to r176407 is able to catch more cases.
This is original relevant code sequence:
sequence 1:
-----------------------
O = getUnderlyingObject()
if (O is pointing to object)
give up;
size = getObjectSize(O);
------------------------
While this is your change in 176407:
sequence 2:
=================
O = getUnderlyingObject()
size = getUnderlyingObjectSize();
===================
Without 176407+1, sequence 1 and 2 are identical in functionality
because:
- if the O is actually points to a object,
getObjectSize() , and getUnderlyingObjectSize() are no different.
- if the O is not pointing to an object,
with 176407 only, getUnderlyingObjectSize() is supposed to return
"invalid".
The sequence is win in compile time because, more often than not, O
is not
pointing to an object, sequence 1 exit earlier, obviating the need to
calling
getUnderyingObjectSize().
While the getUnderyingObjectSize() is relatively inexpensive for
now, it could be expensive
in the future, as your 176408 already prove it.
Shuxin
>> If you really want r176407 back, I don't have strong objection. If you
>> are seeking a better way, I think it would better hold it for a while:-).
>
> Ok, thanks!
> Nadav: if you're still following this thread :), can you recommit r176407
> for me, please?
> I believe it's a slightly better solution and enables future improvements.
>
> Thanks,
> Nuno
More information about the llvm-commits
mailing list