Fiona Glaser
b8a330c42a
Reassociate: add global reassociation algorithm
...
This algorithm (explained more in the source code) takes into account
global redundancies by building a "pair map" to find common subexprs.
The primary motivation of this is to handle situations like
foo = (a * b) * c
bar = (a * d) * c
where we currently don't identify that "a * c" is redundant.
Accordingly, it prioritizes the emission of a * c so that CSE
can remove the redundant calculation later.
Does not change the actual reassociation algorithm -- only the
order in which the reassociated operand chain is reconstructed.
Gives ~1.5% floating point math instruction count reduction on
a large offline suite of graphics shaders.
llvm-svn: 320515
2017-12-12 19:18:02 +00:00
..
2017-08-22 16:30:21 +00:00
2017-08-04 17:09:11 +00:00
2017-08-16 16:09:22 +00:00
2017-10-25 13:40:08 +00:00
2017-12-12 07:29:57 +00:00
2017-12-09 14:25:33 +00:00
2017-12-04 19:21:58 +00:00
2017-11-09 20:01:31 +00:00
2017-08-30 18:06:51 +00:00
2017-08-25 02:25:10 +00:00
2017-12-05 18:14:24 +00:00
2017-08-29 22:29:15 +00:00
2017-11-08 21:59:51 +00:00
2017-07-28 20:21:02 +00:00
2017-11-08 21:59:51 +00:00
2017-09-09 14:10:59 +00:00
2017-11-08 21:59:51 +00:00
2017-11-28 18:44:26 +00:00
2017-11-03 12:12:27 +00:00
2017-11-08 21:59:51 +00:00
2017-08-19 19:15:04 +00:00
2017-08-30 18:06:51 +00:00
2017-08-30 18:06:51 +00:00
2017-11-08 21:59:51 +00:00
2017-12-09 00:21:41 +00:00
2017-11-08 21:59:51 +00:00
2017-11-08 21:59:51 +00:00
2017-12-01 20:57:19 +00:00
2017-10-30 21:19:41 +00:00
2017-12-09 00:21:41 +00:00
2017-12-12 19:12:34 +00:00
2017-12-12 10:03:39 +00:00
2017-10-02 07:35:25 +00:00
2017-11-20 06:07:57 +00:00
2017-11-13 01:47:52 +00:00
2017-11-17 20:38:25 +00:00
2017-11-08 21:59:51 +00:00
2017-08-02 18:17:52 +00:00
2017-11-08 21:59:51 +00:00
2017-10-21 13:58:37 +00:00
2017-12-04 15:11:48 +00:00
2017-07-28 20:21:02 +00:00
2017-11-15 06:46:58 +00:00
2017-10-13 14:30:43 +00:00
2017-12-11 21:38:43 +00:00
2017-11-01 23:12:35 +00:00
2017-08-29 21:45:11 +00:00
2017-12-12 08:57:43 +00:00
2017-08-23 15:43:28 +00:00
2017-11-17 00:30:24 +00:00
2017-12-08 21:57:28 +00:00
2017-12-06 01:47:55 +00:00
2017-11-28 09:32:25 +00:00
2017-10-10 08:00:45 +00:00
2017-08-01 05:14:45 +00:00
2017-12-09 00:21:41 +00:00
2017-10-24 00:09:10 +00:00
2017-11-27 21:15:43 +00:00
2017-12-12 19:07:43 +00:00
2017-11-15 16:37:30 +00:00
2017-07-27 16:49:39 +00:00
2017-12-12 19:18:02 +00:00
2017-11-02 18:24:04 +00:00
2017-08-23 20:31:27 +00:00
2017-11-06 19:52:49 +00:00
2017-07-28 20:21:02 +00:00
2017-11-22 03:04:55 +00:00
2017-11-17 19:58:36 +00:00
2017-12-09 00:21:41 +00:00
2017-12-01 16:17:24 +00:00
2017-11-28 11:32:31 +00:00
2017-12-01 06:05:05 +00:00
2017-08-30 18:06:51 +00:00
2017-08-15 18:14:57 +00:00
2017-11-28 22:39:38 +00:00
2017-11-30 23:05:52 +00:00
2017-09-13 01:43:25 +00:00
2017-11-04 17:04:39 +00:00