Elide repeated RTL elements.
commitc488a0b5554f51dfaebc016e47cf367be2381c5b
authorams <ams@138bc75d-0d04-0410-961f-82ee72b054a4>
Thu, 11 Oct 2018 14:00:20 +0000 (11 14:00 +0000)
committerams <ams@138bc75d-0d04-0410-961f-82ee72b054a4>
Thu, 11 Oct 2018 14:00:20 +0000 (11 14:00 +0000)
treedc74c7785ea195aa9f6861e525f4709cbc23d73e
parentdf5680b76c785fc7ad69adce23ed8dcc68d9bcb6
Elide repeated RTL elements.

GCN's 64-lane vectors tend to make RTL dumps very long.  This patch makes them
far more bearable by eliding long sequences of the same element into "repeated"
messages.

This also takes care of reading repeated sequences in the RTL front-end.

There are self tests for both reading and writing.

2018-10-11  Andrew Stubbs  <ams@codesourcery.com>
    Jan Hubicka  <jh@suse.cz>
    Martin Jambor  <mjambor@suse.cz>

gcc/
* print-rtl.c (print_rtx_operand_codes_E_and_V): Print how many times
the same elements are repeated rather than printing all of them.
* read-rtl.c (rtx_reader::read_rtx_operand): Recognize and expand
"repeated" elements.
* read-rtl-function.c (test_loading_repeat): New function.
(read_rtl_function_c_tests): Call test_loading_repeat.
* rtl-tests.c (test_dumping_repeat): New function.
(rtl_tests_c_tests): Call test_dumping_repeat.

gcc/testsuite/
* selftests/repeat.rtl: New file.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@265042 138bc75d-0d04-0410-961f-82ee72b054a4
gcc/ChangeLog
gcc/print-rtl.c
gcc/read-rtl-function.c
gcc/read-rtl.c
gcc/rtl-tests.c
gcc/testsuite/ChangeLog
gcc/testsuite/selftests/repeat.rtl [new file with mode: 0644]