This is the mail archive of the gcc-bugs@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

[Bug optimization/11969] -foptimize-sibling-calls from -O2 creates bad code


PLEASE REPLY TO gcc-bugzilla@gcc.gnu.org ONLY, *NOT* gcc-bugs@gcc.gnu.org.

http://gcc.gnu.org/bugzilla/show_bug.cgi?id=11969



------- Additional Comments From steven at gcc dot gnu dot org  2003-09-06 15:52 -------
Here are all the replacements that replace_call_placeholder
does with "-O2 -fno-unit-at-a-time":

sibcall_use_sibcall:
getWeightByte -> getWeightTrail
incWeight -> setWeightByte
                                                                                
sibcall_use_normal:
incWeight -> getWeightByte
incWeight -> setWeightByte
lengthenRange -> setWeightTrail
lengthenRange -> setWeightTrail
getWeightRanges -> lengthOfWeight
getWeightRanges -> lengthOfWeight
getWeightRanges -> truncateWeight
getWeightRanges -> memset
getWeightRanges -> memset
getWeightRanges -> getWeightTrail
getWeightRanges -> getWeightTrail
getWeightRanges -> setWeightTrail
getWeightRanges -> truncateWeight
getWeightRanges -> incWeightTrail
getWeightRanges -> getWeightTrail
getWeightRanges -> setWeightTrail
getWeightRanges -> decWeightTrail
getWeightRanges -> truncateWeight
getWeightRanges -> decWeightTrail
getWeightRanges -> incWeight
getWeightRanges -> getWeightTrail
getWeightRanges -> getWeightTrail
getWeightRanges -> getWeightByte
getWeightRanges -> getWeightByte
ucol_allocWeights_2_6 -> getWeightRanges
ucol_allocWeights_2_6 -> lengthenRange
ucol_allocWeights_2_6 -> getWeightByte
ucol_allocWeights_2_6 -> setWeightByte
ucol_allocWeights_2_6 -> incWeight
ucol_allocWeights_2_6 -> truncateWeight
ucol_allocWeights_2_6 -> incWeight
ucol_allocWeights_2_6 -> lengthenRange
ucol_allocWeights_2_6 -> lengthenRange
ucol_allocWeights_2_6 -> qsort

So there are only two sibcalls, and all the other "potentials" are replaced with
normal calls.

If this problem is real, then the sibcall incWeight -> setWeightByte may be the
cause of it.  But the RTL for this looks quite OK AFAICT... :-\


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]