[NDS32] Add relax optimization as new pass.
authorChung-Ju Wu <jasonwucj@gmail.com>
Sun, 1 Apr 2018 10:07:40 +0000 (10:07 +0000)
committerChung-Ju Wu <jasonwucj@gcc.gnu.org>
Sun, 1 Apr 2018 10:07:40 +0000 (10:07 +0000)
commitc4d8d0502ef162362e3fcb2fd249ce92b2fd031d
tree915ac14e84f80b187e396843dc44e8e84449d4a2
parentaf08e51d09f41630023466e7135217ffd43f96c7
[NDS32] Add relax optimization as new pass.

gcc/
* config.gcc (nds32): Add nds32-relax-opt.o into extra_objs.
* config/nds32/constants.md (unspec_volatile_element): Add
UNSPEC_VOLATILE_RELAX_GROUP.
* config/nds32/nds32-relax-opt.c: New file.
* config/nds32/nds32-predicates.c
(nds32_symbol_load_store_p): New function.
* config/nds32/nds32-protos.h
(nds32_symbol_load_store_p): Declare function.
(make_pass_nds32_relax_opt): Declare new rtl pass function.
* config/nds32/nds32.c
(nds32_register_pass): New function to register pass.
(nds32_register_passes): New function to register passes.
* config/nds32/nds32.md (relax_group): New pattern.
* config/nds32/nds32.opt (mrelax-hint): New option.
* config/nds32/t-nds32 (nds32-relax-opt.o): New dependency.

Co-Authored-By: Kito Cheng <kito.cheng@gmail.com>
Co-Authored-By: Kuan-Lin Chen <kuanlinchentw@gmail.com>
From-SVN: r258998
gcc/ChangeLog
gcc/config.gcc
gcc/config/nds32/constants.md
gcc/config/nds32/nds32-predicates.c
gcc/config/nds32/nds32-protos.h
gcc/config/nds32/nds32-relax-opt.c [new file with mode: 0644]
gcc/config/nds32/nds32.c
gcc/config/nds32/nds32.md
gcc/config/nds32/nds32.opt
gcc/config/nds32/t-nds32