This is the mail archive of the elfutils-devel@sourceware.org mailing list for the elfutils 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]

Re: pmachata/reader_hooks branch


Roland McGrath wrote:
>> There are an awful lot of nested function calls.  Although they are
>> marked inline, are we sure gcc sees through that?
> 
> I don't think we have looked (probably not even tried an -O2 build).

When I pass no CFLAGS to configure, -O2 gets picked by default.

> Petr, can you eyeball the generated code, compare text sizes, etc.?

On x86_64, -O1 through -O3, overall change in .text is 2%.  Sizes of 
particular functions change thus on -O2:

SYMBOL                   	OLD	NEW	DELTA	FRACTION
dwarf_formaddr           	126	288	+162	2.29
dwarf_formref_die        	200	407	+207	2.04
dwarf_formstring         	162	365	+203	2.25
dwarf_formudata          	389	569	+180	1.46
dwarf_getaranges         	1144	1518	+374	1.33
dwarf_getlocation        	115	118	+3	1.03
dwarf_getlocation_addr   	1117	948	-169	0.85
dwarf_getpubnames        	1247	1365	+118	1.09
dwarf_getsrclines        	5358	5500	+142	1.03
dwarf_nextcu             	453	642	+189	1.42
dwarf_ranges             	694	797	+103	1.15
dwfl_module_addrsym      	973	965	-8	0.99
getlocation              	1585	1796	+211	1.13

I've shuffled a couple pieces of code around, and metrics got slightly 
better (the table got generated from that improved code).  That's now 
committed.  Though I'll have to restart the tests for that.

With -O3, the numbers (DELTA and FRACTION) are very similar (even though 
OLD and NEW are generally larger).  With -O1, DELTAs tend to be smaller. 
  Everything still gets inlined (or at least symbols don't show up in 
symbol tables).

Does the above look acceptable, or shall I delve in and try to get rid 
of always-true tests and such?

PM

Attachment: signature.asc
Description: PGP signature


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