frv.opt (moptimize-membar): New.
authorAldy Hernandez <aldyh@redhat.com>
Thu, 28 Jul 2005 02:03:45 +0000 (02:03 +0000)
committerAldy Hernandez <aldyh@gcc.gnu.org>
Thu, 28 Jul 2005 02:03:45 +0000 (02:03 +0000)
commit38c28a2564a0f81eb26b2eec0908190c2094dd1f
tree86d74a60faadcae82333a3bbc29a7771ade8a80b
parent47c504ea5ba6da768565dc25fd0455001cec7090
frv.opt (moptimize-membar): New.

* config/frv/frv.opt (moptimize-membar): New.

* doc/invoke.texi: Document -moptimize-membar and its inverse.

* config/frv/frv.h: Remove machine_function definition.

        * config/frv/frv.c (struct frv_io): New.
        (struct machine_function): Moved from frv.h.  Add has_membar_p.
        (frv_same_doubleword_p, frv_io_fixed_order_p, frv_io_union)
        (frv_extract_membar, frv_io_check_address, frv_io_handle_set)
        (frv_io_handle_use_1, frv_io_handle_use, frv_optimize_membar_local)
        (frv_optimize_membar_global, frv_optimize_membar): New functions.
        (frv_reorg): Call frv_optimize_membar when appropriate.
        (bdesc_loads, bdesc_stores): Use the membar code as the icode field.
        (frv_expand_builtin): Adjust calls accordingly.
        (frv_io_address_cookie): New function.
        (frv_expand_load_builtin, frv_expand_store_builtin): Emit a normal
        load or store rather than a special insn.  Add ccnstant address and
        io-type operands to the membar.
(frv_ifcvt_modify_tests): Unsign regno.
(frv_ifcvt_modify_tests): Same.

* config/frv/frv.md: Remove UNSPEC_BUILTIN_{LOAD,STORE}.  Change
UNSPEC_OPTIONAL_MEMBAR constant.
(builtin_read_<mode>): Delete.
(builtin_write_<mode>): Delete.
("optional_membar_<mode>"): Add operand.

* testsuite/gcc.target/frv/all-builtin-read8.c: Delete.
* testsuite/gcc.target/frv/all-builtin-read16.c: Delete.
* testsuite/gcc.target/frv/all-builtin-read32.c: Delete.
* testsuite/gcc.target/frv/all-builtin-read64.c: Delete.
* testsuite/gcc.target/frv/all-builtin-write8.c: Delete.
* testsuite/gcc.target/frv/all-builtin-write16.c: Delete.
* testsuite/gcc.target/frv/all-builtin-write32.c: Delete.
* testsuite/gcc.target/frv/all-builtin-write64.c: Delete.
* testsuite/gcc.target/frv/all-read-write-1.c: New.

From-SVN: r102455
15 files changed:
gcc/ChangeLog
gcc/config/frv/frv.c
gcc/config/frv/frv.h
gcc/config/frv/frv.md
gcc/config/frv/frv.opt
gcc/doc/invoke.texi
gcc/testsuite/gcc.target/frv/all-builtin-read16.c [deleted file]
gcc/testsuite/gcc.target/frv/all-builtin-read32.c [deleted file]
gcc/testsuite/gcc.target/frv/all-builtin-read64.c [deleted file]
gcc/testsuite/gcc.target/frv/all-builtin-read8.c [deleted file]
gcc/testsuite/gcc.target/frv/all-builtin-write16.c [deleted file]
gcc/testsuite/gcc.target/frv/all-builtin-write32.c [deleted file]
gcc/testsuite/gcc.target/frv/all-builtin-write64.c [deleted file]
gcc/testsuite/gcc.target/frv/all-builtin-write8.c [deleted file]
gcc/testsuite/gcc.target/frv/all-read-write-1.c [new file with mode: 0644]