aboutsummaryrefslogtreecommitdiff
path: root/gcc/tree-ssa-loop-prefetch.c
diff options
context:
space:
mode:
authorAlan Modra <amodra@gmail.com>2019-01-08 09:24:40 +1030
committerAlan Modra <amodra@gcc.gnu.org>2019-01-08 09:24:40 +1030
commit2d8d93c783dd43769075fa0474d670f6fb4a85f1 (patch)
tree04317764b127d1d3db9709771cee17d5370e8017 /gcc/tree-ssa-loop-prefetch.c
parent65c5b1eb85f8f0f3078f614d549f107ee9a001af (diff)
downloadgcc-2d8d93c783dd43769075fa0474d670f6fb4a85f1.zip
gcc-2d8d93c783dd43769075fa0474d670f6fb4a85f1.tar.gz
gcc-2d8d93c783dd43769075fa0474d670f6fb4a85f1.tar.bz2
genattrtab bit-rot, and if_then_else in values
This patch started off just by adding if_then_else support in write_attr_value to be able to write a saner expression for powerpc tls_gdld_nomark length. Then I noticed bit-rot in functions used to calculate insn_default_length, insn_min_length, and length_unit_log (which are used by the shorten_branches pass). These functions don't handle a const_int length value and return an "unknown" status that isn't used, or in the case of or_attr_value, doesn't need to be used. min_attr_value also attempts to return INT_MAX for the unhandled rtl case, but this can get lost in recursive calls. I fixed that problem by returning INT_MIN instead, and translating that to INT_MAX in the only caller of min_attr_value. PR target/88614 * genattrtab.c (max_attr_value, min_attr_value, or_attr_value): Delete "unknownp" parameter. Adjust callers. Handle CONST_INT, PLUS, MINUS, and MULT. (attr_value_aligned): Renamed from or_attr_value. (min_attr_value): Return INT_MIN for unhandled rtl case.. (min_fn): ..and translate to INT_MAX here. (write_length_unit_log): Modify to cope without "unknown". (write_attr_value): Handle IF_THEN_ELSE. From-SVN: r267666
Diffstat (limited to 'gcc/tree-ssa-loop-prefetch.c')
0 files changed, 0 insertions, 0 deletions