Use rtx_mode_t instead of std::make_pair
authorRichard Sandiford <richard.sandiford@arm.com>
Fri, 18 Nov 2016 10:04:53 +0000 (10:04 +0000)
committerRichard Sandiford <rsandifo@gcc.gnu.org>
Fri, 18 Nov 2016 10:04:53 +0000 (10:04 +0000)
commitf079167a3064f11a7d8c17ef78389559435bad9d
tree088a5faa65bea2b992c890d73bbec5c40806cb74
parent899ca90e6defb9d63e03764ceb9afe0fc94fbdb1
Use rtx_mode_t instead of std::make_pair

This change makes the code less sensitive to the exact type of the mode,
i.e. it forces a conversion where necessary.  This becomes important
when wrappers like scalar_int_mode and scalar_mode can also be used
instead of machine_mode.

Using rtx_mode_t also abstracts away the representation.  The fact that
it's a std::pair rather than a custom class isn't important to users of
the interface.

gcc/
2016-11-18  Richard Sandiford  <richard.sandiford@arm.com>
    Alan Hayward  <alan.hayward@arm.com>
    David Sherwood  <david.sherwood@arm.com>

* combine.c (try_combine): Use rtx_mode_t instead of std::make_pair.
* dwarf2out.c (mem_loc_descriptor, loc_descriptor): Likewise.
(add_const_value_attribute): Likewise.
* explow.c (plus_constant): Likewise.
* expmed.c (expand_mult, make_tree): Likewise.
* expr.c (convert_modes): Likewise.
* loop-doloop.c (doloop_optimize): Likewise.
* postreload.c (reload_cse_simplify_set): Likewise.
* simplify-rtx.c (simplify_const_unary_operation): Likewise.
(simplify_binary_operation_1, simplify_const_binary_operation):
(simplify_const_relational_operation, simplify_immed_subreg): Likewise.
* wide-int.h: Update documentation to recommend rtx_mode_t
instead of std::make_pair.

Co-Authored-By: Alan Hayward <alan.hayward@arm.com>
Co-Authored-By: David Sherwood <david.sherwood@arm.com>
From-SVN: r242586
gcc/ChangeLog
gcc/combine.c
gcc/dwarf2out.c
gcc/explow.c
gcc/expmed.c
gcc/expr.c
gcc/loop-doloop.c
gcc/postreload.c
gcc/simplify-rtx.c
gcc/wide-int.h