r244878 - in /trunk/gcc: ChangeLog Makefile.in ...

dmalcolm@gcc.gnu.org dmalcolm@gcc.gnu.org
Tue Jan 24 17:07:00 GMT 2017


Author: dmalcolm
Date: Tue Jan 24 17:07:36 2017
New Revision: 244878

URL: https://gcc.gnu.org/viewcvs?rev=244878&root=gcc&view=rev
Log:
Add "__RTL" to cc1

gcc/c-family/ChangeLog:
	* c-common.c (c_common_reswords): Add "__RTL".
	* c-common.h (enum rid): Add RID_RTL.

gcc/c/ChangeLog:
	* c-parser.c: Include "read-rtl-function.h" and
	"run-rtl-passes.h".
	(c_parser_declaration_or_fndef): Rename "gimple-pass-list" in
	grammar to gimple-or-rtl-pass-list.  Add rtl-function-definition
	production.  Update for renaming of field "gimple_pass" to
	"gimple_or_rtl_pass".  If __RTL was seen, call
	c_parser_parse_rtl_body.  Convert a timevar_push/pop pair
	to an auto_timevar, to cope with early exit.
	(c_parser_declspecs): Update RID_GIMPLE handling for renaming of
	field "gimple_pass" to "gimple_or_rtl_pass", and for renaming of
	c_parser_gimple_pass_list to c_parser_gimple_or_rtl_pass_list.
	Handle RID_RTL.
	(c_parser_parse_rtl_body): New function.
	* c-tree.h (enum c_declspec_word): Add cdw_rtl.
	(struct c_declspecs): Rename field "gimple_pass" to
	"gimple_or_rtl_pass".  Add field "rtl_p".
	* gimple-parser.c (c_parser_gimple_pass_list): Rename to...
	(c_parser_gimple_or_rtl_pass_list): ...this, updating accordingly.
	* gimple-parser.h (c_parser_gimple_pass_list): Rename to...
	(c_parser_gimple_or_rtl_pass_list): ...this.

gcc/ChangeLog:
	* cfg.c (original_copy_tables_initialized_p): New function.
	* cfg.h (original_copy_tables_initialized_p): New decl.
	* cfgrtl.c (relink_block_chain): Guard the call to
	free_original_copy_tables with a call to
	original_copy_tables_initialized_p.
	* cgraph.h (symtab_node::native_rtl_p): New decl.
	* cgraphunit.c (symtab_node::native_rtl_p): New function.
	(symtab_node::needed_p): Don't assert for early assembly output
	for __RTL functions.
	(cgraph_node::finalize_function): Set "force_output" for __RTL
	functions.
	(cgraph_node::analyze): Bail out early for __RTL functions.
	(analyze_functions): Update assertion to support __RTL functions.
	(cgraph_node::expand): Bail out early for __RTL functions.
	* final.c (rest_of_clean_state): Don't call delete_tree_ssa for
	__RTL functions.
	* function.h (struct function): Update comment for field
	"pass_startwith".
	* gimple-expr.c: Include "tree-pass.h".
	(gimple_has_body_p): Return false for __RTL functions.
	* Makefile.in (OBJS): Add run-rtl-passes.o.
	* pass_manager.h (gcc::pass_manager::get_rest_of_compilation): New
	accessor.
	(gcc::pass_manager::get_clean_slate): New accessor.
	* passes.c: Include "insn-addr.h".
	(should_skip_pass_p): Add logging.  Update logic for running
	"expand" to be compatible with both __GIMPLE and __RTL.  Guard
	property-provider override so it is only done for gimple passes.
	Don't skip dfinit.
	(skip_pass): New function.
	(execute_one_pass): Call skip_pass when skipping passes.
	* read-md.c (md_reader::read_char): Support filtering
	the input to a subset of line numbers.
	(md_reader::md_reader): Initialize fields
	m_first_line and m_last_line.
	(md_reader::read_file_fragment): New function.
	* read-md.h (md_reader::read_file_fragment): New decl.
	(md_reader::m_first_line): New field.
	(md_reader::m_last_line): New field.
	* read-rtl-function.c (function_reader::create_function): Only
	create cfun if it doesn't already exist.  Set PROP_rtl on cfun's
	curr_properties.  Set DECL_INITIAL to a dummy block.
	(read_rtl_function_body_from_file_range): New function.
	* read-rtl-function.h (read_rtl_function_body_from_file_range):
	New decl.
	* run-rtl-passes.c: New file.
	* run-rtl-passes.h: New file.

gcc/testsuite/ChangeLog:
	* gcc.dg/rtl/aarch64/asr_div1.c: New test case.
	* gcc.dg/rtl/aarch64/pr71779.c: New test case.
	* gcc.dg/rtl/rtl.exp: New file.
	* gcc.dg/rtl/test.c: New file.
	* gcc.dg/rtl/truncated-rtl-file.c: New test case.
	* gcc.dg/rtl/unknown-rtx-code.c: New test case.
	* gcc.dg/rtl/x86_64/dfinit.c: New test case.
	* gcc.dg/rtl/x86_64/different-structs.c: New test case.
	* gcc.dg/rtl/x86_64/final.c: New test case.
	* gcc.dg/rtl/x86_64/into-cfglayout.c: New test case.
	* gcc.dg/rtl/x86_64/ira.c: New test case.
	* gcc.dg/rtl/x86_64/pro_and_epilogue.c: New test case.
	* gcc.dg/rtl/x86_64/test-multiple-fns.c: New test case.
	* gcc.dg/rtl/x86_64/test-return-const.c.after-expand.c: New test case.
	* gcc.dg/rtl/x86_64/test-return-const.c.before-fwprop.c: New test case.
	* gcc.dg/rtl/x86_64/test-rtl.c: New test case.
	* gcc.dg/rtl/x86_64/test_1.h: New file.
	* gcc.dg/rtl/x86_64/times-two.c.after-expand.c: New test case.
	* gcc.dg/rtl/x86_64/times-two.c.before-df.c: New test case.
	* gcc.dg/rtl/x86_64/times-two.h: New file.
	* gcc.dg/rtl/x86_64/vregs.c: New test case.


Added:
    trunk/gcc/run-rtl-passes.c
    trunk/gcc/run-rtl-passes.h
    trunk/gcc/testsuite/gcc.dg/rtl/
    trunk/gcc/testsuite/gcc.dg/rtl/aarch64/
    trunk/gcc/testsuite/gcc.dg/rtl/aarch64/asr_div1.c
    trunk/gcc/testsuite/gcc.dg/rtl/aarch64/pr71779.c
    trunk/gcc/testsuite/gcc.dg/rtl/rtl.exp
    trunk/gcc/testsuite/gcc.dg/rtl/test.c
    trunk/gcc/testsuite/gcc.dg/rtl/truncated-rtl-file.c
    trunk/gcc/testsuite/gcc.dg/rtl/unknown-rtx-code.c
    trunk/gcc/testsuite/gcc.dg/rtl/x86_64/
    trunk/gcc/testsuite/gcc.dg/rtl/x86_64/dfinit.c
    trunk/gcc/testsuite/gcc.dg/rtl/x86_64/different-structs.c
    trunk/gcc/testsuite/gcc.dg/rtl/x86_64/final.c
    trunk/gcc/testsuite/gcc.dg/rtl/x86_64/into-cfglayout.c
    trunk/gcc/testsuite/gcc.dg/rtl/x86_64/ira.c
    trunk/gcc/testsuite/gcc.dg/rtl/x86_64/pro_and_epilogue.c
    trunk/gcc/testsuite/gcc.dg/rtl/x86_64/test-multiple-fns.c
    trunk/gcc/testsuite/gcc.dg/rtl/x86_64/test-return-const.c.after-expand.c
    trunk/gcc/testsuite/gcc.dg/rtl/x86_64/test-return-const.c.before-fwprop.c
    trunk/gcc/testsuite/gcc.dg/rtl/x86_64/test-rtl.c
    trunk/gcc/testsuite/gcc.dg/rtl/x86_64/test_1.h
    trunk/gcc/testsuite/gcc.dg/rtl/x86_64/times-two.c.after-expand.c
    trunk/gcc/testsuite/gcc.dg/rtl/x86_64/times-two.c.before-df.c
    trunk/gcc/testsuite/gcc.dg/rtl/x86_64/times-two.h
    trunk/gcc/testsuite/gcc.dg/rtl/x86_64/vregs.c
Modified:
    trunk/gcc/ChangeLog
    trunk/gcc/Makefile.in
    trunk/gcc/c-family/ChangeLog
    trunk/gcc/c-family/c-common.c
    trunk/gcc/c-family/c-common.h
    trunk/gcc/c/ChangeLog
    trunk/gcc/c/c-parser.c
    trunk/gcc/c/c-tree.h
    trunk/gcc/c/gimple-parser.c
    trunk/gcc/c/gimple-parser.h
    trunk/gcc/cfg.c
    trunk/gcc/cfg.h
    trunk/gcc/cfgrtl.c
    trunk/gcc/cgraph.h
    trunk/gcc/cgraphunit.c
    trunk/gcc/final.c
    trunk/gcc/function.h
    trunk/gcc/gimple-expr.c
    trunk/gcc/pass_manager.h
    trunk/gcc/passes.c
    trunk/gcc/read-md.c
    trunk/gcc/read-md.h
    trunk/gcc/read-rtl-function.c
    trunk/gcc/read-rtl-function.h
    trunk/gcc/testsuite/ChangeLog



More information about the Gcc-cvs mailing list