+2018-02-27 Alexandre Oliva <aoliva@redhat.com>
+
+ * tree-ssa-live.c (remove_unused_scope_block_p): Do not
+ preserve inline entry blocks for the sake of debug inline
+ entry point markers alone.
+ (remove_unused_locals): Suggest in comments a better place to
+ force the preservation of inline entry blocks that are
+ otherwise unused, but do not preserve them.
+
2018-02-26 H.J. Lu <hongjiu.lu@intel.com>
* config/i386/i386.c (ix86_output_indirect_jmp): Update comments.
else if (!BLOCK_SUPERCONTEXT (scope)
|| TREE_CODE (BLOCK_SUPERCONTEXT (scope)) == FUNCTION_DECL)
unused = false;
- /* Preserve the block, it is referenced by at least the inline
- entry point marker. */
- else if (debug_inline_points
- && inlined_function_outer_scope_p (scope))
- unused = false;
/* Innermost blocks with no live variables nor statements can be always
eliminated. */
else if (!nsubblocks)
/* See if this block is important for representation of inlined
function. Inlined functions are always represented by block
with block_ultimate_origin being set to FUNCTION_DECL and
- DECL_SOURCE_LOCATION set, unless they expand to nothing... But
- see above for the case of statement frontiers. */
- else if (!debug_inline_points
- && inlined_function_outer_scope_p (scope))
+ DECL_SOURCE_LOCATION set, unless they expand to nothing... */
+ else if (inlined_function_outer_scope_p (scope))
unused = false;
else
/* Verfify that only blocks with source location set
gimple *stmt = gsi_stmt (gsi);
tree b = gimple_block (stmt);
+ /* If we wanted to mark the block referenced by the inline
+ entry point marker as used, this would be a good spot to
+ do it. If the block is not otherwise used, the stmt will
+ be cleaned up in clean_unused_block_pointer. */
if (is_gimple_debug (stmt))
continue;