Alexey Bataev
894935cb51
[SLP]Represent SLP graph as a tree
We can stop using a graph representation of the SLP structure and switch
directly to tree by relying on a single user of each tree node. If the
node has multiple uses, other uses must be represented as a separate
gather/buildvector node, which then will be combined with the existing
vectorized node(s) uoon cost estimation/codegen.
This allow to simplify inner structure and turn in some extra
optimizations, which could not be turned on for the nodes with multi
users (reordering, minbitwidth analysis).
AVX512, -O3+LTO
Metric: size..text
results results0 diff
test-suite :: MultiSource/Benchmarks/ASCI_Purple/SMG2000/smg2000.test 253453.00 254253.00 0.3%
test-suite :: External/SPEC/CFP2006/444.namd/444.namd.test 251411.00 252051.00 0.3%
test-suite :: SingleSource/Benchmarks/Misc/oourafft.test 19114.00 19146.00 0.2%
test-suite :: External/SPEC/CFP2017speed/638.imagick_s/638.imagick_s.test 1399200.00 1399520.00 0.0%
test-suite :: External/SPEC/CFP2017rate/538.imagick_r/538.imagick_r.test 1399200.00 1399520.00 0.0%
test-suite :: MicroBenchmarks/LCALS/SubsetALambdaLoops/lcalsALambda.test 304310.00 304326.00 0.0%
test-suite :: MicroBenchmarks/LCALS/SubsetARawLoops/lcalsARaw.test 304662.00 304678.00 0.0%
test-suite :: External/SPEC/CFP2017rate/526.blender_r/526.blender_r.test 12566919.00 12567511.00 0.0%
test-suite :: External/SPEC/CFP2006/453.povray/453.povray.test 1146300.00 1146316.00 0.0%
test-suite :: External/SPEC/CFP2017rate/511.povray_r/511.povray_r.test 1159864.00 1159880.00 0.0%
test-suite :: External/SPEC/CINT2017rate/502.gcc_r/502.gcc_r.test 9407880.00 9407864.00 -0.0%
test-suite :: External/SPEC/CINT2017speed/602.gcc_s/602.gcc_s.test 9407880.00 9407864.00 -0.0%
test-suite :: MultiSource/Benchmarks/tramp3d-v4/tramp3d-v4.test 1011612.00 1011596.00 -0.0%
test-suite :: MultiSource/Benchmarks/Prolangs-C/TimberWolfMC/timberwolfmc.test 280584.00 280536.00 -0.0%
test-suite :: MultiSource/Benchmarks/DOE-ProxyApps-C++/miniFE/miniFE.test 93016.00 93000.00 -0.0%
ASCI_Purple/SMG2000 - extra code vectorized, small variations
CFP2006/444.namd - small variations, less shuffles
Benchmarks/Misc/oourafft - small variations
CFP2017rate/538.imagick_r
CFP2017speed/638.imagick_s - small variations, less shuffles
LCALS/SubsetALambdaLoops - less shuffles
LCALS/SubsetARawLoops - less shuffles
CFP2017rate/526.blender_r - small variations, extra vector code
CFP2006/453.povray - small variations
CFP2017rate/511.povray_r - small variations
CINT2017rate/502.gcc_r
CINT2017speed/602.gcc_s - small variations
Benchmarks/tramp3d-v4 - small variations
Prolangs-C/TimberWolfMC - small variations
DOE-ProxyApps-C++/miniFE - extra code vectorized, small variations
DOE-ProxyApps-C++/CLAMR - extra code vectorized, small variations
ASCI_Purple/SMG2000 - no significant changes
RISCV, -O3+LTO
Metric: size..text
results results0 diff
test-suite :: SingleSource/Regression/C/gcc-c-torture/execute/GCC-C-execute-pr28982b.test 1812.00 1866.00 3.0%
test-suite :: MultiSource/Benchmarks/Olden/health/health.test 3946.00 4016.00 1.8%
test-suite :: External/SPEC/CINT2017speed/625.x264_s/625.x264_s.test 513180.00 513550.00 0.1%
test-suite :: External/SPEC/CINT2017rate/525.x264_r/525.x264_r.test 513180.00 513550.00 0.1%
test-suite :: External/SPEC/CINT2017rate/502.gcc_r/502.gcc_r.test 7672198.00 7672202.00 0.0%
test-suite :: External/SPEC/CINT2017speed/602.gcc_s/602.gcc_s.test 7672198.00 7672202.00 0.0%
test-suite :: External/SPEC/CFP2017rate/508.namd_r/508.namd_r.test 746060.00 746044.00 -0.0%
test-suite :: External/SPEC/CFP2017rate/526.blender_r/526.blender_r.test 9497716.00 9497364.00 -0.0%
test-suite :: External/SPEC/CFP2006/453.povray/453.povray.test 948266.00 948214.00 -0.0%
test-suite :: External/SPEC/CFP2006/433.milc/433.milc.test 89874.00 89862.00 -0.0%
test-suite :: MultiSource/Benchmarks/7zip/7zip-benchmark.test 835492.00 835346.00 -0.0%
test-suite :: MultiSource/Benchmarks/DOE-ProxyApps-C++/miniFE/miniFE.test 66230.00 66202.00 -0.0%
test-suite :: External/SPEC/CFP2017rate/511.povray_r/511.povray_r.test 946090.00 944206.00 -0.2%
test-suite :: External/SPEC/CFP2017speed/638.imagick_s/638.imagick_s.test 1136404.00 1131854.00 -0.4%
test-suite :: External/SPEC/CFP2017rate/538.imagick_r/538.imagick_r.test 1136404.00 1131854.00 -0.4%
gcc-c-torture/execute/GCC-C-execute-pr28982b - better vector code
Olden/health - extra vector code
CINT2017speed/625.x264_s
CINT2017rate/525.x264_r - small variation + improvements in reordering, @pixel_hadamard_ac stopped
being vectorized because of some non-effective shuffle recognition by
the compiler
CINT2017rate/502.gcc_r
CINT2017speed/602.gcc_s - small variations
CFP2017rate/508.namd_r - small variations
CFP2017rate/526.blender_r - small variations
CFP2006/453.povray - extra vector code
Benchmarks/7zip - extra vector code
DOE-ProxyApps-C++/miniFE - small variations
CFP2017rate/511.povray_r - extra vector code
CFP2017speed/638.imagick_s
CFP2017rate/538.imagick_r - extra vector code
Reviewers: RKSimon, hiraditya
Reviewed By: RKSimon
Pull Request: https://github.com/llvm/llvm-project/pull/126771
2025-02-21 07:15:02 -05:00
..
2025-02-04 19:09:57 -05:00
2025-02-04 19:09:57 -05:00
2025-02-02 15:56:08 +02:00
2025-02-02 15:56:08 +02:00
2024-11-22 06:50:25 -08:00
2025-02-02 15:56:08 +02:00
2025-02-02 15:56:08 +02:00
2025-02-02 15:56:08 +02:00
2025-02-02 15:56:08 +02:00
2024-07-25 14:35:39 +01:00
2024-07-25 14:35:39 +01:00
2024-07-08 07:56:48 -07:00
2024-11-06 11:53:33 +00:00
2024-11-06 11:53:33 +00:00
2024-07-08 07:56:48 -07:00
2024-05-03 18:06:50 +01:00
2025-01-24 15:13:13 +00:00
2025-01-24 09:47:40 +00:00
2025-01-24 15:13:13 +00:00
2025-01-24 09:47:40 +00:00
2024-07-08 07:56:48 -07:00
2024-09-02 17:06:07 +08:00
2024-07-08 07:56:48 -07:00
2024-07-08 07:56:48 -07:00
2024-07-25 14:35:39 +01:00
2024-07-25 14:35:39 +01:00
2024-07-08 07:56:48 -07:00
2024-09-02 17:06:07 +08:00
2024-07-08 07:56:48 -07:00
2024-07-08 07:56:48 -07:00
2024-11-29 06:51:19 -08:00
2024-07-25 09:19:22 -04:00
2024-12-12 20:38:31 -08:00
2024-07-09 12:26:42 -04:00
2024-07-09 12:26:42 -04:00
2025-02-14 11:03:33 -08:00
2024-12-12 20:38:31 -08:00
2024-09-25 10:23:41 -04:00
2025-02-02 15:56:08 +02:00
2024-11-11 10:49:39 -08:00
2025-02-04 18:49:43 -05:00
2024-11-19 11:31:40 -08:00
2025-01-10 09:32:35 -08:00
2024-11-06 11:53:33 +00:00
2025-02-04 19:09:57 -05:00
2024-11-06 11:53:33 +00:00
2024-08-21 12:02:54 +02:00
2024-08-21 12:02:54 +02:00
2024-11-06 11:53:33 +00:00
2025-02-21 07:15:02 -05:00
2024-08-06 11:03:36 -04:00
2024-08-29 03:53:28 -07:00
2024-11-06 11:53:33 +00:00
2024-11-06 11:53:33 +00:00
2024-08-13 11:56:02 +02:00
2024-07-10 03:58:00 -07:00
2024-10-29 17:16:17 -07:00
2025-02-19 09:43:26 -08:00
2024-12-03 20:54:36 +00:00
2024-12-03 20:54:36 +00:00
2025-02-04 18:49:43 -05:00
2024-11-06 11:53:33 +00:00
2024-12-03 20:54:36 +00:00
2024-12-03 20:54:36 +00:00
2024-12-03 20:54:36 +00:00
2024-12-03 20:54:36 +00:00
2024-12-03 20:54:36 +00:00
2024-11-06 11:53:33 +00:00
2024-11-06 11:53:33 +00:00
2024-12-03 20:54:36 +00:00
2024-12-03 20:54:36 +00:00
2024-12-03 20:54:36 +00:00
2024-08-12 10:15:02 -04:00
2024-12-03 20:54:36 +00:00
2025-01-26 14:43:51 +00:00
2025-02-14 11:03:33 -08:00
2025-01-26 14:43:51 +00:00
2024-06-14 15:07:27 +01:00
2024-11-06 11:53:33 +00:00
2024-07-12 08:08:50 -07:00
2025-02-21 07:15:02 -05:00
2024-08-12 10:15:02 -04:00
2024-11-06 11:53:33 +00:00
2025-01-13 09:28:27 -08:00
2024-09-03 09:16:37 -07:00
2024-07-09 12:26:42 -04:00
2024-11-21 13:08:27 -08:00
2024-11-06 11:53:33 +00:00
2025-02-21 07:15:02 -05:00
2025-02-14 11:03:33 -08:00
2025-02-04 19:09:57 -05:00
2025-02-14 11:03:33 -08:00
2024-12-12 20:38:31 -08:00
2024-08-12 10:15:02 -04:00
2024-10-31 13:50:02 -04:00
2024-10-14 07:50:07 -07:00
2024-09-03 09:16:37 -07:00
2025-02-21 07:15:02 -05:00
2025-01-25 11:50:14 -08:00
2024-11-06 11:53:33 +00:00
2024-08-07 15:01:37 -04:00
2025-01-21 10:33:03 -05:00
2025-02-21 07:15:02 -05:00
2024-08-16 13:49:44 -07:00
2024-10-31 13:50:02 -04:00
2024-07-29 13:23:56 -04:00
2025-01-21 10:33:03 -05:00
2024-04-15 09:09:39 -07:00
2025-02-21 07:15:02 -05:00
2024-04-22 06:38:38 -07:00
2024-11-06 11:53:33 +00:00
2025-02-21 07:15:02 -05:00
2024-11-18 14:09:31 -08:00
2025-01-31 12:55:03 -08:00
2024-11-06 11:53:33 +00:00
2024-11-06 11:53:33 +00:00
2025-02-21 07:15:02 -05:00
2024-05-24 09:33:36 -04:00
2025-01-17 09:48:03 -08:00
2025-02-14 11:03:33 -08:00
2025-02-14 11:03:33 -08:00
2024-11-06 11:53:33 +00:00
2024-11-06 11:53:33 +00:00
2025-01-18 11:48:53 -08:00
2024-10-14 07:00:56 -07:00
2024-08-23 06:45:22 -07:00
2025-01-18 10:23:20 +08:00
2025-02-04 19:09:57 -05:00
2025-02-04 19:09:57 -05:00
2024-11-22 16:10:17 -05:00
2024-09-21 15:41:06 -07:00
2024-09-21 15:41:06 -07:00
2025-01-29 10:23:09 +00:00
2024-11-06 11:53:33 +00:00
2025-02-02 15:56:08 +02:00
2024-09-21 15:41:06 -07:00
2025-02-14 11:03:33 -08:00
2025-02-02 15:56:08 +02:00
2025-02-21 07:15:02 -05:00
2024-12-03 20:54:36 +00:00
2024-12-12 20:38:31 -08:00
2025-02-21 07:15:02 -05:00
2024-12-20 10:39:45 +00:00
2024-09-27 04:14:28 -07:00
2025-02-21 07:15:02 -05:00
2024-09-03 05:29:59 -07:00
2024-12-05 14:36:40 +01:00
2024-11-06 11:53:33 +00:00
2024-12-12 20:38:31 -08:00
2025-01-20 14:22:20 -08:00
2024-08-30 10:19:27 -07:00
2025-02-14 11:03:33 -08:00
2024-12-03 20:54:36 +00:00
2025-02-02 15:56:08 +02:00
2024-11-25 07:58:19 -08:00
2024-09-27 12:54:56 -07:00
2024-11-06 11:53:33 +00:00
2025-01-21 10:33:03 -05:00
2024-04-15 09:09:39 -07:00
2024-08-29 12:40:31 -07:00
2024-04-16 14:54:06 -04:00
2024-12-18 19:06:34 +01:00
2024-12-05 14:36:40 +01:00
2024-08-12 10:15:02 -04:00
2024-12-03 20:54:36 +00:00
2024-12-03 20:54:36 +00:00
2025-02-21 07:15:02 -05:00
2024-11-06 11:53:33 +00:00
2024-10-31 13:50:02 -04:00
2024-12-03 20:54:36 +00:00
2024-07-09 05:44:45 -07:00
2025-02-14 11:03:33 -08:00
2025-02-21 07:15:02 -05:00
2025-02-21 07:15:02 -05:00
2024-07-09 14:11:08 -07:00
2024-04-22 08:40:19 -07:00
2024-12-03 20:54:36 +00:00
2025-02-04 19:09:57 -05:00
2025-02-04 19:09:57 -05:00
2024-11-06 11:53:33 +00:00
2024-11-06 11:53:33 +00:00
2024-12-03 20:54:36 +00:00
2024-11-06 11:53:33 +00:00
2024-10-31 13:23:43 -04:00
2024-11-06 11:53:33 +00:00
2024-11-06 11:53:33 +00:00
2024-11-06 11:53:33 +00:00
2024-11-06 11:53:33 +00:00
2024-11-06 11:53:33 +00:00
2024-12-09 16:44:05 +01:00
2024-12-05 14:36:40 +01:00
2024-12-05 14:36:40 +01:00
2024-11-06 11:53:33 +00:00
2024-11-06 11:53:33 +00:00
2024-09-13 17:45:33 +01:00
2024-07-25 12:25:19 +02:00
2024-08-12 10:15:02 -04:00
2024-08-12 10:15:02 -04:00
2024-11-06 11:53:33 +00:00
2024-08-12 10:15:02 -04:00
2024-08-12 10:15:02 -04:00
2024-11-06 11:53:33 +00:00
2025-02-14 11:03:33 -08:00
2024-10-02 06:01:25 -07:00
2024-08-12 10:15:02 -04:00
2025-02-14 11:03:33 -08:00
2024-11-06 11:53:33 +00:00
2024-07-09 12:26:42 -04:00
2024-11-06 11:53:33 +00:00
2025-02-14 11:03:33 -08:00
2024-12-26 05:11:26 -08:00
2025-02-04 18:49:43 -05:00
2024-08-12 10:15:02 -04:00
2024-11-06 11:53:33 +00:00
2024-11-06 11:53:33 +00:00
2024-11-06 11:53:33 +00:00
2024-10-24 07:47:23 -07:00
2024-11-06 11:53:33 +00:00
2024-12-03 20:54:36 +00:00
2024-08-30 14:27:51 -04:00
2024-08-23 06:45:22 -07:00
2024-12-03 20:54:36 +00:00
2024-10-21 13:37:44 +01:00
2024-12-03 20:54:36 +00:00
2024-09-21 15:41:06 -07:00
2024-08-30 14:27:51 -04:00
2024-11-06 11:53:33 +00:00
2024-07-09 12:26:42 -04:00
2024-08-12 10:15:02 -04:00
2024-12-03 20:54:36 +00:00
2025-01-28 05:45:13 -08:00
2024-12-03 20:54:36 +00:00
2024-07-16 12:45:58 -04:00
2025-02-21 07:15:02 -05:00
2024-11-06 11:53:33 +00:00
2024-07-18 10:06:19 -07:00
2025-02-14 11:03:33 -08:00
2024-09-03 09:16:37 -07:00
2024-10-21 09:16:16 -07:00
2025-02-03 06:05:19 -08:00
2025-02-13 06:40:37 -08:00
2025-02-05 08:54:09 +00:00
2024-11-06 11:53:33 +00:00
2024-12-24 15:35:29 -05:00
2025-02-02 15:56:08 +02:00
2024-08-23 06:45:22 -07:00
2024-11-06 11:53:33 +00:00
2024-07-15 07:27:54 -07:00
2024-07-08 07:56:48 -07:00
2024-07-08 07:56:48 -07:00
2024-07-08 07:56:48 -07:00
2025-02-21 07:15:02 -05:00
2025-01-09 11:24:48 -08:00
2024-11-06 11:53:33 +00:00
2025-02-04 19:09:57 -05:00
2024-11-06 11:53:33 +00:00
2025-01-17 09:48:03 -08:00
2024-09-03 09:16:37 -07:00
2025-02-21 07:15:02 -05:00
2024-10-14 07:00:56 -07:00
2024-10-23 10:46:38 -07:00
2025-02-02 15:56:08 +02:00
2024-11-06 11:53:33 +00:00
2024-09-21 15:41:06 -07:00
2024-11-06 11:53:33 +00:00
2024-11-06 11:53:33 +00:00
2024-04-11 14:56:39 -04:00
2024-12-04 16:36:00 +00:00
2024-08-07 11:01:53 +08:00
2024-11-06 11:53:33 +00:00
2025-02-21 07:15:02 -05:00
2024-11-06 11:53:33 +00:00
2024-08-23 06:45:22 -07:00
2024-09-16 09:44:47 -07:00
2024-04-16 13:29:35 +01:00
2025-02-14 11:03:33 -08:00
2024-11-06 11:53:33 +00:00
2024-12-03 20:54:36 +00:00
2025-01-17 09:48:03 -08:00
2024-12-12 20:38:31 -08:00
2024-10-21 12:25:39 -07:00
2024-04-13 08:14:40 +01:00
2024-09-05 07:52:27 -07:00
2024-11-06 11:53:33 +00:00
2024-11-06 11:53:33 +00:00
2024-11-06 11:53:33 +00:00
2024-11-06 11:53:33 +00:00
2024-10-21 12:25:39 -07:00
2024-05-24 13:46:34 +08:00
2024-11-06 11:53:33 +00:00
2025-01-17 09:48:03 -08:00