Commit Graph

291 Commits

Author SHA1 Message Date
bab81f1941 enable evaluate register pressure in loops for decisions to move loop invariants
This is enabled with -O3, but only for some targets. Seems to be off for x86_64.

docs:
Use IRA to evaluate register pressure in loops for decisions to move loop invariants. This option usually results in generation of faster and smaller code on machines with large register files (>= 32 registers), but it can slow the compiler down.
2022-05-18 14:34:11 +02:00
44ac1fd5c8 enable live range shrinkage to relief register pressure
docs:
I'd recommend to use this at
least for x86/x86-64.  I think any OOO processor with small or
moderate register file which does not use the 1st insn scheduling
might benefit from this too.

  On SPEC2000 for x86/x86-64 (I use Haswell processor, -O3 with
general tuning), the optimization usage results in smaller code size
in average (for floating point and integer benchmarks in 32- and
64-bit mode).  The improvement better visible for SPECFP2000 (although
I have the same improvement on x86-64 SPECInt2000 but it might be
attributed mostly mcf benchmark unstability).  It is about 0.5% for
32-bit and 64-bit mode.  It is understandable, as the optimization has
more opportunities to improve the code on longer BBs.  Different from
other heuristic optimizations, I don't see any significant worse
performance.  It gives practically the same or better performance (a
few benchmarks imporoved by 1% or more upto 3%).

  The single but significant drawback is additional compilation time
(4%-6%) as the 1st insn scheduling pass is quite expensive.

Source of docs: https://gcc.gnu.org/legacy-ml/gcc-patches/2013-11/msg00420.html
2022-05-18 14:34:11 +02:00
ed3a8ad5d8 enable elimination of redundant loads that come after stores to the same memory location
docs:
When -fgcse-las is enabled, the global common subexpression elimination pass eliminates redundant loads that come after stores to the same memory location (both partial and full redundancies).
2022-05-18 14:34:11 +02:00
fa46ae8c7c enable store motion pass run after global common subexpression elimination
docs:
When -fgcse-sm is enabled, a store motion pass is run after global common subexpression elimination. This pass attempts to move stores out of loops. When used in conjunction with -fgcse-lm, loops containing a load/store sequence can be changed to a load before the loop and a store after the loop.
2022-05-18 14:34:11 +02:00
65d6e7e135 make findpkgfiles fallback to srcinfo 2022-05-18 14:27:54 +02:00
dd118c5f97 error handling if findPkgFiles is called without a valid dbpkg 2022-05-18 14:09:51 +02:00
ca85586118 add dbpkg to proto on queue gen 2022-05-18 14:03:13 +02:00
78666f9899 remove packages skipped or of undefined status 2022-05-18 13:49:41 +02:00
567f8d903f fix typo 2022-05-11 21:05:43 +02:00
4153e53466 add -mpclmul and -devirtualize-at-ltrans
fixing #92 partly
2022-05-11 17:10:53 +02:00
f190902b41 add gcc to all mirror checks, preventing issues like #111 2022-05-11 17:06:08 +02:00
85d46f4ab0 updated deps 2022-05-11 17:00:22 +02:00
f7d2e8ccc7 improved logging 2022-03-09 19:05:25 +01:00
c2abe68483 regenerated ent with new version 2022-03-07 17:24:05 +01:00
ed2a42318e more follow-up fixes for new build-queue 2022-03-07 17:20:24 +01:00
65f3247d20 added success logging 2022-02-19 19:44:04 +01:00
270889bf5c followup fixes for new weighted build-queue 2022-02-19 19:39:48 +01:00
ba159e0a72 switched to weighted build-queue 2022-02-19 18:03:55 +01:00
0f98b9d18f fixed wrong error being handled 2022-02-16 10:44:57 +01:00
e4daa72230 improved logging 2022-02-16 09:11:30 +01:00
2631aada64 some docs 2022-02-16 08:22:33 +01:00
47f0fb6c66 refactor utils.go, error handling 2022-02-16 08:11:34 +01:00
99a2519ecb shrink debug-symbols column 2022-02-14 17:25:18 +01:00
26e9076013 we only need one debuginfod instance 2022-02-14 16:45:29 +01:00
db3aa9e17d no need for newline in echo 2022-02-14 16:05:19 +01:00
31cf59e6e9 fixed some problems reported by golint and ineffassign 2022-02-14 13:14:21 +01:00
34ba3398e8 added ge-report and godoc badges 2022-02-14 13:05:38 +01:00
9a41ee9387 added information about debuginfod to readme 2022-02-14 12:15:04 +01:00
5841d1c201 fixed small perm problem 2022-02-14 02:08:59 +01:00
312fe9ef40 fixed typo 2022-02-13 23:04:07 +01:00
c7ba7340a5 added debuginfod support 2022-02-13 22:33:57 +01:00
45672e3459 update deps. 2022-02-13 21:48:43 +01:00
e9951f5d3b fixed module path, again 2022-02-11 21:33:44 +01:00
adad7c1acd regen ent with version 0.10.0 2022-02-10 19:21:16 +01:00
f0ac9d6052 updated deps. 2022-02-10 19:20:40 +01:00
b92b68f332 fixed package name 2022-02-10 19:18:23 +01:00
89d55a6bfd fixed base not being compared if no srcinfo is available 2022-02-10 16:42:06 +01:00
b8967e6080 fixed accessing srcinfo without it being initialized 2022-02-10 16:31:24 +01:00
ea8fe72158 compare packagebase to sort out packages that were merged/split from splitpackages 2022-02-10 16:29:37 +01:00
7c993e1bc1 added error to log 2022-02-10 14:34:05 +01:00
3a6dc45089 improved error handling for errors fetching packages from db in HK 2022-02-10 14:31:45 +01:00
b7a49ec6c1 removed unneeded var 2022-02-07 18:38:49 +01:00
211981512b improved logging for missing split-packages 2022-02-07 17:49:49 +01:00
b484f7d4d7 added split-package check to housekeeping 2022-02-07 17:46:16 +01:00
02928a4d0d fixed packages being removed while db was down; better error handling 2022-02-07 15:55:33 +01:00
9d79bf0613 skip package if not found in db 2022-01-30 00:49:09 +01:00
79f7690a68 move parseWG.done() after buildWG has been increased 2022-01-21 13:02:22 +01:00
b9dec56a31 added delay for builds to start before waiting for builds 2022-01-21 12:56:41 +01:00
761cc47c3a error if svn2git version is not initialized 2022-01-21 12:33:45 +01:00
d574252d9b remove from parse WG after build has been issued 2022-01-21 12:16:25 +01:00