diff options
author | Siddhesh Poyarekar <siddhesh@gotplt.org> | 2021-10-18 09:15:42 +0530 |
---|---|---|
committer | Siddhesh Poyarekar <siddhesh@gotplt.org> | 2021-10-18 19:04:16 +0530 |
commit | 30d6ff3916882c7af80f92e0030cedb0788572d3 (patch) | |
tree | f1ba4aad88ceb3f710805dd41f2b74838d308c55 | |
parent | c9ff4581841f079e00d37fa7743021c62c935315 (diff) | |
download | gcc-30d6ff3916882c7af80f92e0030cedb0788572d3.zip gcc-30d6ff3916882c7af80f92e0030cedb0788572d3.tar.gz gcc-30d6ff3916882c7af80f92e0030cedb0788572d3.tar.bz2 |
tree-object-size: Avoid unnecessary processing of __builtin_object_size
This is a minor cleanup to bail out early if the result of
__builtin_object_size is not assigned to anything and avoid initializing
the object size arrays.
gcc/ChangeLog:
* tree-object-size.c (object_sizes_execute): Consolidate LHS
null check and do it early.
Signed-off-by: Siddhesh Poyarekar <siddhesh@gotplt.org>
-rw-r--r-- | gcc/tree-object-size.c | 12 |
1 files changed, 5 insertions, 7 deletions
diff --git a/gcc/tree-object-size.c b/gcc/tree-object-size.c index 6a4dc72..46a976d 100644 --- a/gcc/tree-object-size.c +++ b/gcc/tree-object-size.c @@ -1298,6 +1298,10 @@ object_sizes_execute (function *fun, bool insert_min_max_p) if (!gimple_call_builtin_p (call, BUILT_IN_OBJECT_SIZE)) continue; + tree lhs = gimple_call_lhs (call); + if (!lhs) + continue; + init_object_sizes (); /* If insert_min_max_p, only attempt to fold @@ -1312,11 +1316,9 @@ object_sizes_execute (function *fun, bool insert_min_max_p) { unsigned HOST_WIDE_INT object_size_type = tree_to_uhwi (ost); tree ptr = gimple_call_arg (call, 0); - tree lhs = gimple_call_lhs (call); if ((object_size_type == 1 || object_size_type == 3) && (TREE_CODE (ptr) == ADDR_EXPR - || TREE_CODE (ptr) == SSA_NAME) - && lhs) + || TREE_CODE (ptr) == SSA_NAME)) { tree type = TREE_TYPE (lhs); unsigned HOST_WIDE_INT bytes; @@ -1339,10 +1341,6 @@ object_sizes_execute (function *fun, bool insert_min_max_p) continue; } - tree lhs = gimple_call_lhs (call); - if (!lhs) - continue; - result = gimple_fold_stmt_to_constant (call, do_valueize); if (!result) { |