-
Notifications
You must be signed in to change notification settings - Fork 24
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
GCC: xtensa: Backport patches from upstream/master (v2) #37
GCC: xtensa: Backport patches from upstream/master (v2) #37
Conversation
229252c
to
93c0a52
Compare
no news is good news, isn't it? :) future work plans, but wishful thinking:
|
93c0a52
to
e85097b
Compare
22f5f68
to
8e8d215
Compare
8e8d215
to
84fc9bc
Compare
84fc9bc
to
11624ac
Compare
11624ac
to
82c7f41
Compare
2106655
to
56f36a3
Compare
56f36a3
to
e16eb67
Compare
e6bab61
to
1741e4a
Compare
1741e4a
to
81ff5a0
Compare
89281c4
to
63cd9bc
Compare
63cd9bc
to
20a6a9f
Compare
20a6a9f
to
7f4db1c
Compare
Is it time for a rebuild w/these new patches? The PR is still "WIP" so I don't want to merge/build accidentally... |
Two more high-impact patches are waiting to be merged, so I'd like a little more time. |
See earlephilhower#29 and earlephilhower#36. List of patches added after earlephilhower#29: 75ab2f0ebd3c6ab678fea03906186068b89f9fbc "xtensa: Apply a few minor fixes" 46880cd8be7c307f147a8785ac8f58e04a35d34e "xtensa: Fix RTL insn cost estimation about relaxed MOVI instructions" ec532b47f1823e71f822c0da781c531ffff67a52 "xtensa: Fix buffer overflow" 773dffc50fbc768e3282455bd4238a67b1481176 "xtensa: Optimize integer constant addition that is between -32896 and 32639" 46dc26fdfbf3e64f82188e21aa6a13ec23108e8e "Improve initialization of objects when the initializer has trailing zeros." e85c94d1c83072d7b894e44009e876dd41ff778a "xtensa: Minor fix for FP constant synthesis" 1884f8978237b15013576a720bcb32e7c5647574 "xtensa: constantsynth: Make try to find shorter instruction" d6d8e6a7e1379f9dfdf2f39efcc82d9185cca6d0 "xtensa: Optimize "bitwise AND with imm1" followed by "branch if (not) equal to imm2"" 2180cdd8a0e65c2790a7732c82de87f83478487b "xtensa: Correct the relative RTX cost that corresponds to the Move Immediate "MOVI" instruction" 64cb87b2381aceaa37230bae7f43c7b9f978d3e3 "xtensa: Optimize "bitwise AND NOT with imm" followed by "branch if (not) equal to zero"" 48e9954d0865b5e5e31cb77ad05c45f7206eeb9f "xtensa: Add RTX costs for if_then_else" 2fa8c4a659a19ec971c80704f48f96c13aae9ac3 "xtensa: Fix conflicting hard regno between indirect sibcall fixups and EH_RETURN_STACKADJ_RTX" a2ff389099c325bc1244b1d72744a18c5fa6fda3 "xtensa: Turn on -fsplit-wide-types-early by default" dca74793cd42ce4c5319943a516cc5ea7265b6f7 "xtensa: Optimize stack pointer updates in function pro/epilogue under certain conditions" 8731aa98674eda56425ffd652918ce4979631f67 "xtensa: Improve indirect sibling call handling" 9e0c2696724d4d004ea189a69f15781c7baa68e1 "xtensa: add static PIE support" 06c2756e824cfe409d280fc78a0c4f68a9123e49 "xtensa: Eliminate unused stack frame allocation/freeing" 89afb2e86fcb29c559b2957fdcbea0d01740c49b "xtensa: Make complex hard register clobber elimination more robust and accurate" 75e5cc9c3aba943819c284902b3792f7150749cf "xtensa: constantsynth: Add new 3-insns synthesis pattern" 71cd6a0430ca2a2c44e3cf4cc9f3c96d3aef1ab7 "xtensa: fix builtin_apply return value" 0bf60f68ed9db2e4b373b28c125aeda339f6cd59 "xtensa: implement MI thunk generation for call0 ABI" 66d20d881647e7dd177355a851d7839394ab8341 "xtensa: enable section anchors support" 4f3f0296acbb99a0fa2867986956e53e487206a9 "xtensa: Prepare the transition from Reload to LRA" e0927d7ddca154b1a5151da698e205593cb8912e "xtensa: Make register A0 allocable for the CALL0 ABI" f896c13489d22b30d01257bc8316ab97b3359d1c "xtensa: Fix out-of-bounds array access in the movdi pattern" 89d5982b8f92c7441e34f8b65466840b4fe43687 "xtensa: Tabify, and trim trailing spaces" b22f86ba9582b1483ff970aa73740864ceaa0860 "xtensa: Clean up xtensa_expand_prologue" 98a1b4d073b9993b0acda525332225f90714e2ec "xtensa: Change GP_RETURN{,_REG_COUNT} to GP_RETURN_{FIRST,LAST}" 48a0e822666b79600cae7401f9a3e8cf16bc3fd1 "xtensa: Generate density instructions in set_frame_ptr" b92f1c2dcc7b79467662321615f6eafb0c441c7d "xtensa: use define_c_enums instead of define_constants" 65fed695f7b2eb99dfd679fbdfcf510104de2fb8 "xtensa: Check DF availability before use" da086e472b61245dedcb2463c53f84072773d1f5 "xtensa: use GP_RETURN_* instead of magic constant" b095a1db483c1a9522a768e52743440d6987c2cd "xtensa: Optimize stack frame adjustment more" e3a4bd0bbdccdde0cff85f93064b01a44fb10d2a "xtensa: Optimize bitwise splicing operation" b399afd22c6ea50722bbff3247d52f3bd14bf2b6 "xtensa: Make instruction cost estimation for size more accurate" bb65bd084a8739feb5b85f87135c531fc8b86572 "xtensa: Tune "*btrue" insn pattern" 117be79bd84ed21b47588d0cd86d72d5d1757cae "xtensa: Optimize ctzsi2 and ffssi2 a bit" ff6c7617102df365918402c6ccc8e497c47dbe60 "xtensa: Remove old broken tweak for leaf function" a4b05944b7d409682197a9f50759a4ed97145e23 "xtensa: Optimize inversion of the MSB" 1c407dc088231ba5f2cc63d9278f4b797db48de1 "xtensa: Revise complex hard register clobber elimination" a804419c89db9e1c0b99e772dda6c95095bab0bf "xtensa: Enforce return address saving when -Og is specified" 782e442e4f3b88937a725a01245dd749f3f893b9 "xtensa: fix PR target/108876" 4f609c6f762832e43524352527a7ecbea2698ff9 "xtensa: Fix missing mode warnings in machine description" 33e4559305e6f1adaa1b2b59f645d54fd98e5bbe "xtensa: Eliminate the use of callee-saved register that saves and restores only once" f83e76c3f998c8708fe2ddca16ae3f317c39c37a "xtensa: Eliminate unnecessary general-purpose reg-reg moves"
7f4db1c
to
59b7795
Compare
Merged the last two patches to GCC mainline. I think here is just the right place to rebuild :) |
Got it, @jjsuwa-sys3175 . I'll give a run this weekend and do a PR w/the new toolchain in the Arduino repo. Thanks again for all the strong effort! |
List of patches added after earlephilhower#37: 461d3c84a0e5ad045ee54631901cc953d6befa20 "xtensa: fix PR target/108919" ce83c3e492c2fa5a08c15b5f4619d58f42a5dcd0 "xtensa: Make use of CLAMPS instruction if configured" c981f61c071757f1f724fe7c3959622c13f079fa "xtensa: Remove REG_OK_STRICT and its derivatives" e33d2dcb463161a110ac345a451132ce8b2b23d9 "xtensa: Optimize '(x & CST1_POW2) != 0 ? CST2_POW2 : 0'" 8a20b4bc50bdc8d61610974d60d5851f3fd8b70f "xtensa: Merge '*addx' and '*subx' insn patterns into one" bf78e24a90d4d064b0372a03c0327b6f90475949 "xtensa: tidy extzvsi-1bit patterns" 9b867c8281ee313cf6ec737d8f4a9ba7ef78408e "xtensa: Add 'subtraction from constant' insn pattern" 78648c09a0494e6bf1edbd97acb708bc282eb5f5 "xtensa: Rework 'setmemsi' insn pattern" feae4e83f76cf8e6698429d5acb08ff1968d13f2 "xtensa: Improve "*shlrd_reg" insn pattern and its variant"
List of patches added after earlephilhower#37: 461d3c84a0e5ad045ee54631901cc953d6befa20 "xtensa: fix PR target/108919" ce83c3e492c2fa5a08c15b5f4619d58f42a5dcd0 "xtensa: Make use of CLAMPS instruction if configured" c981f61c071757f1f724fe7c3959622c13f079fa "xtensa: Remove REG_OK_STRICT and its derivatives" e33d2dcb463161a110ac345a451132ce8b2b23d9 "xtensa: Optimize '(x & CST1_POW2) != 0 ? CST2_POW2 : 0'" 8a20b4bc50bdc8d61610974d60d5851f3fd8b70f "xtensa: Merge '*addx' and '*subx' insn patterns into one" bf78e24a90d4d064b0372a03c0327b6f90475949 "xtensa: tidy extzvsi-1bit patterns" 9b867c8281ee313cf6ec737d8f4a9ba7ef78408e "xtensa: Add 'subtraction from constant' insn pattern" 78648c09a0494e6bf1edbd97acb708bc282eb5f5 "xtensa: Rework 'setmemsi' insn pattern" feae4e83f76cf8e6698429d5acb08ff1968d13f2 "xtensa: Improve "*shlrd_reg" insn pattern and its variant" fe3ce0861081dd17e581c32b299b9c743d000470 "xtensa: Add 'adddi3' and 'subdi3' insn patterns" 830d36b3c307c70af57b832821d8590b29a5bda5 "xtensa: Optimize boolean evaluation or branching when EQ/NE to INT_MIN"
List of patches added after earlephilhower#37: 461d3c84a0e5ad045ee54631901cc953d6befa20 "xtensa: fix PR target/108919" ce83c3e492c2fa5a08c15b5f4619d58f42a5dcd0 "xtensa: Make use of CLAMPS instruction if configured" c981f61c071757f1f724fe7c3959622c13f079fa "xtensa: Remove REG_OK_STRICT and its derivatives" e33d2dcb463161a110ac345a451132ce8b2b23d9 "xtensa: Optimize '(x & CST1_POW2) != 0 ? CST2_POW2 : 0'" 8a20b4bc50bdc8d61610974d60d5851f3fd8b70f "xtensa: Merge '*addx' and '*subx' insn patterns into one" bf78e24a90d4d064b0372a03c0327b6f90475949 "xtensa: tidy extzvsi-1bit patterns" 9b867c8281ee313cf6ec737d8f4a9ba7ef78408e "xtensa: Add 'subtraction from constant' insn pattern" 78648c09a0494e6bf1edbd97acb708bc282eb5f5 "xtensa: Rework 'setmemsi' insn pattern" feae4e83f76cf8e6698429d5acb08ff1968d13f2 "xtensa: Improve "*shlrd_reg" insn pattern and its variant" fe3ce0861081dd17e581c32b299b9c743d000470 "xtensa: Add 'adddi3' and 'subdi3' insn patterns" 830d36b3c307c70af57b832821d8590b29a5bda5 "xtensa: Optimize boolean evaluation or branching when EQ/NE to INT_MIN" 1ce54ad8cd694a1defb9374f18607194ef702ea7 "xtensa: Remove TARGET_MEMORY_MOVE_COST hook" 7360cba833cd921631818428a851e03ea88f1e8a "xtensa: constantsynth: Add new 2-insns synthesis pattern"
List of patches added after earlephilhower#37: 461d3c84a0e5ad045ee54631901cc953d6befa20 "xtensa: fix PR target/108919" ce83c3e492c2fa5a08c15b5f4619d58f42a5dcd0 "xtensa: Make use of CLAMPS instruction if configured" c981f61c071757f1f724fe7c3959622c13f079fa "xtensa: Remove REG_OK_STRICT and its derivatives" e33d2dcb463161a110ac345a451132ce8b2b23d9 "xtensa: Optimize '(x & CST1_POW2) != 0 ? CST2_POW2 : 0'" 8a20b4bc50bdc8d61610974d60d5851f3fd8b70f "xtensa: Merge '*addx' and '*subx' insn patterns into one" bf78e24a90d4d064b0372a03c0327b6f90475949 "xtensa: tidy extzvsi-1bit patterns" 9b867c8281ee313cf6ec737d8f4a9ba7ef78408e "xtensa: Add 'subtraction from constant' insn pattern" 78648c09a0494e6bf1edbd97acb708bc282eb5f5 "xtensa: Rework 'setmemsi' insn pattern" feae4e83f76cf8e6698429d5acb08ff1968d13f2 "xtensa: Improve "*shlrd_reg" insn pattern and its variant" fe3ce0861081dd17e581c32b299b9c743d000470 "xtensa: Add 'adddi3' and 'subdi3' insn patterns" 830d36b3c307c70af57b832821d8590b29a5bda5 "xtensa: Optimize boolean evaluation or branching when EQ/NE to INT_MIN" 1ce54ad8cd694a1defb9374f18607194ef702ea7 "xtensa: Remove TARGET_MEMORY_MOVE_COST hook" 7360cba833cd921631818428a851e03ea88f1e8a "xtensa: constantsynth: Add new 2-insns synthesis pattern" 0778f4dcdafa7dabb015a3375089addc1a4df49b "xtensa: Fix missing mode warning in "*eqne_INT_MIN"" 2f615b33dd61590a74e7758e19016250ade2b828 "xtensa: The use of CLAMPS instruction also requires TARGET_MINMAX, as well as TARGET_CLAMPS" cd22b97726472138d3fe22fb1ff0c27176408fc9 "xtensa: Use HARD_REG_SET instead of bare integer"
List of patches added after earlephilhower#37: 461d3c84a0e5ad045ee54631901cc953d6befa20 "xtensa: fix PR target/108919" ce83c3e492c2fa5a08c15b5f4619d58f42a5dcd0 "xtensa: Make use of CLAMPS instruction if configured" c981f61c071757f1f724fe7c3959622c13f079fa "xtensa: Remove REG_OK_STRICT and its derivatives" 675b1a7f113adb1d737adaf78b4fd90be7a0ed1a "ifcvt.c: Prevent excessive if-conversion for conditional moves" e33d2dcb463161a110ac345a451132ce8b2b23d9 "xtensa: Optimize '(x & CST1_POW2) != 0 ? CST2_POW2 : 0'" 8a20b4bc50bdc8d61610974d60d5851f3fd8b70f "xtensa: Merge '*addx' and '*subx' insn patterns into one" bf78e24a90d4d064b0372a03c0327b6f90475949 "xtensa: tidy extzvsi-1bit patterns" 9b867c8281ee313cf6ec737d8f4a9ba7ef78408e "xtensa: Add 'subtraction from constant' insn pattern" 78648c09a0494e6bf1edbd97acb708bc282eb5f5 "xtensa: Rework 'setmemsi' insn pattern" feae4e83f76cf8e6698429d5acb08ff1968d13f2 "xtensa: Improve "*shlrd_reg" insn pattern and its variant" fe3ce0861081dd17e581c32b299b9c743d000470 "xtensa: Add 'adddi3' and 'subdi3' insn patterns" 830d36b3c307c70af57b832821d8590b29a5bda5 "xtensa: Optimize boolean evaluation or branching when EQ/NE to INT_MIN" 1ce54ad8cd694a1defb9374f18607194ef702ea7 "xtensa: Remove TARGET_MEMORY_MOVE_COST hook" 7360cba833cd921631818428a851e03ea88f1e8a "xtensa: constantsynth: Add new 2-insns synthesis pattern" 0778f4dcdafa7dabb015a3375089addc1a4df49b "xtensa: Fix missing mode warning in "*eqne_INT_MIN"" 2f615b33dd61590a74e7758e19016250ade2b828 "xtensa: The use of CLAMPS instruction also requires TARGET_MINMAX, as well as TARGET_CLAMPS" cd22b97726472138d3fe22fb1ff0c27176408fc9 "xtensa: Use HARD_REG_SET instead of bare integer" a4829dda6362f5f653c4bd5783374fafc0e8622f "xtensa: Optimize boolean evaluation when SImode EQ/NE to zero if TARGET_MINMAX" 1d17d58c284fa8c30a42195dadd14a44606c987e "xtensa: Optimize several boolean evaluations of EQ/NE against constant zero" fd948fd846c7de29150872e43b63bf9128da5b8f "xtensa: use salt/saltu in xtensa_expand_scc" cc7aca846ae524f36a350cd54cd31da22acd6805 "xtensa: fix salt/saltu version check" 3f722e7886ff46385033d9187e21f49c523083d4 "xtensa: Fix missing mode warning in "*eqne_zero_masked_bits""
List of patches added after earlephilhower#37: 461d3c84a0e5ad045ee54631901cc953d6befa20 "xtensa: fix PR target/108919" ce83c3e492c2fa5a08c15b5f4619d58f42a5dcd0 "xtensa: Make use of CLAMPS instruction if configured" c981f61c071757f1f724fe7c3959622c13f079fa "xtensa: Remove REG_OK_STRICT and its derivatives" 675b1a7f113adb1d737adaf78b4fd90be7a0ed1a "ifcvt.c: Prevent excessive if-conversion for conditional moves" e33d2dcb463161a110ac345a451132ce8b2b23d9 "xtensa: Optimize '(x & CST1_POW2) != 0 ? CST2_POW2 : 0'" 8a20b4bc50bdc8d61610974d60d5851f3fd8b70f "xtensa: Merge '*addx' and '*subx' insn patterns into one" bf78e24a90d4d064b0372a03c0327b6f90475949 "xtensa: tidy extzvsi-1bit patterns" 9b867c8281ee313cf6ec737d8f4a9ba7ef78408e "xtensa: Add 'subtraction from constant' insn pattern" 78648c09a0494e6bf1edbd97acb708bc282eb5f5 "xtensa: Rework 'setmemsi' insn pattern" feae4e83f76cf8e6698429d5acb08ff1968d13f2 "xtensa: Improve "*shlrd_reg" insn pattern and its variant" fe3ce0861081dd17e581c32b299b9c743d000470 "xtensa: Add 'adddi3' and 'subdi3' insn patterns" 830d36b3c307c70af57b832821d8590b29a5bda5 "xtensa: Optimize boolean evaluation or branching when EQ/NE to INT_MIN" 1ce54ad8cd694a1defb9374f18607194ef702ea7 "xtensa: Remove TARGET_MEMORY_MOVE_COST hook" 7360cba833cd921631818428a851e03ea88f1e8a "xtensa: constantsynth: Add new 2-insns synthesis pattern" 0778f4dcdafa7dabb015a3375089addc1a4df49b "xtensa: Fix missing mode warning in "*eqne_INT_MIN"" 2f615b33dd61590a74e7758e19016250ade2b828 "xtensa: The use of CLAMPS instruction also requires TARGET_MINMAX, as well as TARGET_CLAMPS" cd22b97726472138d3fe22fb1ff0c27176408fc9 "xtensa: Use HARD_REG_SET instead of bare integer" a4829dda6362f5f653c4bd5783374fafc0e8622f "xtensa: Optimize boolean evaluation when SImode EQ/NE to zero if TARGET_MINMAX" 1d17d58c284fa8c30a42195dadd14a44606c987e "xtensa: Optimize several boolean evaluations of EQ/NE against constant zero" fd948fd846c7de29150872e43b63bf9128da5b8f "xtensa: use salt/saltu in xtensa_expand_scc" cc7aca846ae524f36a350cd54cd31da22acd6805 "xtensa: fix salt/saltu version check" 3f722e7886ff46385033d9187e21f49c523083d4 "xtensa: Fix missing mode warning in "*eqne_zero_masked_bits""
List of patches added after earlephilhower#37: 461d3c84a0e5ad045ee54631901cc953d6befa20 "xtensa: fix PR target/108919" ce83c3e492c2fa5a08c15b5f4619d58f42a5dcd0 "xtensa: Make use of CLAMPS instruction if configured" c981f61c071757f1f724fe7c3959622c13f079fa "xtensa: Remove REG_OK_STRICT and its derivatives" 675b1a7f113adb1d737adaf78b4fd90be7a0ed1a "ifcvt.c: Prevent excessive if-conversion for conditional moves" e33d2dcb463161a110ac345a451132ce8b2b23d9 "xtensa: Optimize '(x & CST1_POW2) != 0 ? CST2_POW2 : 0'" 8a20b4bc50bdc8d61610974d60d5851f3fd8b70f "xtensa: Merge '*addx' and '*subx' insn patterns into one" bf78e24a90d4d064b0372a03c0327b6f90475949 "xtensa: tidy extzvsi-1bit patterns" 9b867c8281ee313cf6ec737d8f4a9ba7ef78408e "xtensa: Add 'subtraction from constant' insn pattern" 78648c09a0494e6bf1edbd97acb708bc282eb5f5 "xtensa: Rework 'setmemsi' insn pattern" feae4e83f76cf8e6698429d5acb08ff1968d13f2 "xtensa: Improve "*shlrd_reg" insn pattern and its variant" fe3ce0861081dd17e581c32b299b9c743d000470 "xtensa: Add 'adddi3' and 'subdi3' insn patterns" 830d36b3c307c70af57b832821d8590b29a5bda5 "xtensa: Optimize boolean evaluation or branching when EQ/NE to INT_MIN" 1ce54ad8cd694a1defb9374f18607194ef702ea7 "xtensa: Remove TARGET_MEMORY_MOVE_COST hook" 7360cba833cd921631818428a851e03ea88f1e8a "xtensa: constantsynth: Add new 2-insns synthesis pattern" 0778f4dcdafa7dabb015a3375089addc1a4df49b "xtensa: Fix missing mode warning in "*eqne_INT_MIN"" 2f615b33dd61590a74e7758e19016250ade2b828 "xtensa: The use of CLAMPS instruction also requires TARGET_MINMAX, as well as TARGET_CLAMPS" cd22b97726472138d3fe22fb1ff0c27176408fc9 "xtensa: Use HARD_REG_SET instead of bare integer" a4829dda6362f5f653c4bd5783374fafc0e8622f "xtensa: Optimize boolean evaluation when SImode EQ/NE to zero if TARGET_MINMAX" 1d17d58c284fa8c30a42195dadd14a44606c987e "xtensa: Optimize several boolean evaluations of EQ/NE against constant zero" fd948fd846c7de29150872e43b63bf9128da5b8f "xtensa: use salt/saltu in xtensa_expand_scc" cc7aca846ae524f36a350cd54cd31da22acd6805 "xtensa: fix salt/saltu version check" 3f722e7886ff46385033d9187e21f49c523083d4 "xtensa: Fix missing mode warning in "*eqne_zero_masked_bits"" 24d5e0bf19f27a89a13f64b4b8750dbde89bdaa0 "xtensa: Make full transition to LRA" 7c2c7dd24bd93cd9cb8a6e54a4d11850982665fd "xtensa: Recover constant synthesis for HImode after LRA transition" bc5a9dab55d13f888a3cdd150c8cf5c2244f35e0 "xtensa: reorder movsi_internal patterns for better code generation during LRA"
See #29 and #36.
List of patches added after #29:
ESP8266 Quick Toolchain for 3.1.1-gcc10.4 (LINUX, unofficial)
x86_64-linux-gnu.xtensa-lx106-elf-a04637c.230224.tar.xz
ESP8266 Quick Toolchain for 3.1.1-gcc10.4 (WIN64, unofficial)
x86_64-w64-mingw32.xtensa-lx106-elf-a04637c.230224.7z [pass: esp8266/Arduino]
ESP8266 Quick Toolchain for 3.1.1-gcc10.4 (RPi, unofficial)
arm-linux-gnueabihf.xtensa-lx106-elf-a04637c.230224.tar.xz
"FSBrowser" building IROM / IRAM size:
318272 ( 0) / 27711 ( 0)
317036 (-1236) / 27643 (-68)