gcc/gcc/c-family
David Malcolm c2e8432763 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.

From-SVN: r244878
2017-01-24 17:07:36 +00:00
..
ChangeLog Add "__RTL" to cc1 2017-01-24 17:07:36 +00:00
ChangeLog.gimple-classes Merger of git branch "gimple-classes-v2-option-3" 2014-11-19 17:00:54 +00:00
array-notation-common.c re PR c/79116 (ICE on cilkplus array notation with a _Cilk_for) 2017-01-17 15:27:18 +00:00
c-ada-spec.c Update copyright years. 2017-01-01 13:07:43 +01:00
c-ada-spec.h Update copyright years. 2017-01-01 13:07:43 +01:00
c-attribs.c Update copyright years. 2017-01-01 13:07:43 +01:00
c-cilkplus.c Update copyright years. 2017-01-01 13:07:43 +01:00
c-common.c Add "__RTL" to cc1 2017-01-24 17:07:36 +00:00
c-common.def Update copyright years. 2017-01-01 13:07:43 +01:00
c-common.h Add "__RTL" to cc1 2017-01-24 17:07:36 +00:00
c-cppbuiltin.c * c-cppbuiltin.c (c_cpp_builtins): Define __cpp_variadic_using. 2017-01-10 14:04:28 -05:00
c-dump.c Update copyright years. 2017-01-01 13:07:43 +01:00
c-format.c Update copyright years. 2017-01-01 13:07:43 +01:00
c-format.h Update copyright years. 2017-01-01 13:07:43 +01:00
c-gimplify.c re PR c/64279 (Warning missing for "(cond) ? A : A" / if(cond) expr1; else expr1; // same expression in if and else branch) 2017-01-20 12:02:50 +00:00
c-indentation.c Fix wording of -Wmisleading-indentation (PR c++/71497) 2017-01-17 16:33:44 +00:00
c-indentation.h Update copyright years. 2017-01-01 13:07:43 +01:00
c-lex.c Update copyright years. 2017-01-01 13:07:43 +01:00
c-objc.h Update copyright years. 2017-01-01 13:07:43 +01:00
c-omp.c Update copyright years. 2017-01-01 13:07:43 +01:00
c-opts.c Error for '-' as filename of a precompiled header (PR pch/78970) 2017-01-05 14:17:07 +00:00
c-pch.c Update copyright years. 2017-01-01 13:07:43 +01:00
c-ppoutput.c Update copyright years. 2017-01-01 13:07:43 +01:00
c-pragma.c Update copyright years. 2017-01-01 13:07:43 +01:00
c-pragma.h Update copyright years. 2017-01-01 13:07:43 +01:00
c-pretty-print.c [bootstrap-O1] change value type to avoid sprintf buffer size warning 2017-01-06 03:34:25 +00:00
c-pretty-print.h Update copyright years. 2017-01-01 13:07:43 +01:00
c-semantics.c Update copyright years. 2017-01-01 13:07:43 +01:00
c-target-def.h Update copyright years. 2017-01-01 13:07:43 +01:00
c-target.def Update copyright years. 2017-01-01 13:07:43 +01:00
c-target.h Update copyright years. 2017-01-01 13:07:43 +01:00
c-ubsan.c Update copyright years. 2017-01-01 13:07:43 +01:00
c-ubsan.h Update copyright years. 2017-01-01 13:07:43 +01:00
c-warn.c re PR c/64279 (Warning missing for "(cond) ? A : A" / if(cond) expr1; else expr1; // same expression in if and else branch) 2017-01-20 12:02:50 +00:00
c.opt re PR c/64279 (Warning missing for "(cond) ? A : A" / if(cond) expr1; else expr1; // same expression in if and else branch) 2017-01-20 12:02:50 +00:00
cilk.c Update copyright years. 2017-01-01 13:07:43 +01:00
cppspec.c Update copyright years. 2017-01-01 13:07:43 +01:00
stub-objc.c Update copyright years. 2017-01-01 13:07:43 +01:00