2008-06-04 Xinliang David Li <davidxl@google.com>
commite6a23add8ced32740537095333313e2b2d51ad76
authordavidxl <davidxl@138bc75d-0d04-0410-961f-82ee72b054a4>
Wed, 4 Jun 2008 21:49:45 +0000 (4 21:49 +0000)
committerdavidxl <davidxl@138bc75d-0d04-0410-961f-82ee72b054a4>
Wed, 4 Jun 2008 21:49:45 +0000 (4 21:49 +0000)
treee298fb5d3a5ce2f2f94d42716feeeb493ca9e188
parentda08da6924795bffe4adc8e53feb53a3ff311ff7
2008-06-04  Xinliang David Li  <davidxl@google.com>

* tree-call-cdce.c: New file.
(cond_dead_built_in_calls): New static variable.
(input_domain): New struct.
(check_pow): New function.
(check_builtin_call): Ditto.
(check_target_format): Ditto.
(is_call_dce_candidate): Ditto.
(gen_one_condition): Ditto.
(gen_conditions_for_domain): Ditto.
(get_domain): Ditto.
(gen_conditions_for_pow_cst_base): Ditto.
(gen_conditions_for_pow_int_base): Ditto.
(gen_conditions_for_pow): Ditto.
(get_no_error_domain): Ditto.
(gen_shrink_wrap_conditions): Ditto.
(shrink_wrap_one_built_in_call): Ditto.
(shink_wrap_conditional_dead_built_in_calls): Ditto.
(tree_call_cdce): Ditto.
(gate_call_cdce): Ditto.
(pass_call_cdce): New gimple pass.
* passes.c: (init_optimization_passes): New pass.
* tree-pass.h: New pass declaration.
* opts.c (decode_options): New flag setting.
* common.opt: Add -ftree-builtin-call-dce flag.
* Makefile.in: Add new source file.
* tempvar.def: New tv_id.
* doc/invoke.texi (-ftree-builtin-call-dce): New flag.

2008-06-04  Xinliang David Li  <davidxl@google.com>
* gcc.dg/cdce1.c: New test.
* gcc.dg/cdce2.c: Ditto.
* g++.dg/cdce3.C: Ditto.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@136374 138bc75d-0d04-0410-961f-82ee72b054a4
13 files changed:
gcc/ChangeLog
gcc/Makefile.in
gcc/common.opt
gcc/doc/invoke.texi
gcc/opts.c
gcc/passes.c
gcc/testsuite/ChangeLog
gcc/testsuite/g++.dg/cdce3.C [new file with mode: 0644]
gcc/testsuite/gcc.dg/cdce1.c [new file with mode: 0644]
gcc/testsuite/gcc.dg/cdce2.c [new file with mode: 0644]
gcc/timevar.def
gcc/tree-call-cdce.c [new file with mode: 0644]
gcc/tree-pass.h