diff options
author | Bill Schmidt <wschmidt@linux.ibm.com> | 2021-11-07 07:56:07 -0600 |
---|---|---|
committer | Bill Schmidt <wschmidt@linux.ibm.com> | 2021-11-07 09:23:55 -0600 |
commit | a28cfe49203705ff9675b79fce88d6087b11d098 (patch) | |
tree | ec4c143e0a14235f3a972653c99810986829a305 /gcc/fortran/resolve.c | |
parent | 4898e958a92d45dbf23c0f28bc7552689ba16ecc (diff) | |
download | gcc-a28cfe49203705ff9675b79fce88d6087b11d098.zip gcc-a28cfe49203705ff9675b79fce88d6087b11d098.tar.gz gcc-a28cfe49203705ff9675b79fce88d6087b11d098.tar.bz2 |
rs6000: Replace the builtin expansion machinery
This patch forms the meat of the improvements for this patch series.
We develop a replacement for rs6000_expand_builtin and its supporting
functions, which are inefficient and difficult to maintain.
Differences between the old and new support in this patch include:
- Make use of the new builtin data structures, directly looking up
a function's information rather than searching for the function
multiple times;
- Test for enablement of builtins at expand time, to support #pragma
target changes within a compilation unit;
- Use the builtin function attributes (e.g., bif_is_cpu) to control
special handling;
- Refactor common code into one place; and
- Provide common error handling in one place for operands that are
restricted to specific values or ranges.
2021-11-07 Bill Schmidt <wschmidt@linux.ibm.com>
gcc/
* config/rs6000/rs6000-call.c (rs6000_expand_new_builtin): New
forward decl.
(rs6000_invalid_new_builtin): New function.
(rs6000_expand_builtin): Call rs6000_expand_new_builtin.
(rs6000_expand_ldst_mask): New function.
(new_cpu_expand_builtin): Likewise.
(elemrev_icode): Likewise.
(ldv_expand_builtin): Likewise.
(lxvrse_expand_builtin): Likewise.
(lxvrze_expand_builtin): Likewise.
(stv_expand_builtin): Likewise.
(new_mma_expand_builtin): Likewise.
(new_htm_spr_num): Likewise.
(new_htm_expand_builtin): Likewise.
(rs6000_expand_new_builtin): Likewise.
(rs6000_init_builtins): Initialize altivec_builtin_mask_for_load.
Diffstat (limited to 'gcc/fortran/resolve.c')
0 files changed, 0 insertions, 0 deletions