2009-01-04  Richard Sandiford  <rdsandiford@googlemail.com>

	* tree.def (LSHIFT_EXPR, RSHIFT_EXPR): Add commentary.
	* tree-cfg.c (verify_gimple_assign_binary): Allow shifts of
	fixed-point types, and vectors of the same.

2009-01-04  Richard Sandiford  <rdsandiford@googlemail.com>

	* config/mips/sync.md (*mb_barrier): Rename to...
	(*memory_barrier): ...this.

2009-01-04  Jonathan Wakely  <jwakely.gcc@gmail.com>

	* doc/extend.texi (Function Attributes): Move @cindex after @item
	for 'artifical' and 'flatten'. Fix grammar for 'externally_visible'
	and put in alphabetical order. Fix 'target' name and put in order.
	* doc/invoke.texi (-Wstrict-null-sentinel, -fipa-matrix-reorg): Fix
	typos.

2009-01-04  Uros Bizjak  <ubizjak@gmail.com>

	* config/s390/s390.md (UNSPEC_MB): Rename from UNSPECV_MB.
	(memory_barrier): Expand as unspec instead of unspec_volatile.
	Remove mem:BLK from insn operands.  Use Pmode scratch register.
	(*memory_barrier): Define as unspec instead of unspec_volatile.
	Use (match_dup 0) as input operand.

	* config/sparc/sparc.md (UNSPEC_MEMBAR): Rename from UNSPECV_MEMBAR.
	* config/sparc/sync.md (memory_barrier): Expand as unspec instead of
	unspec_volatile.  Remove mem:BLK from insn operands.  Use Pmode
	scratch register.  Remove operand 1.
	(*stbar): Define as unspec instead of unspec_volatile.
	Use (match_dup 0) as input operand, remove (const_int 8).
	(*membar): Define as unspec instead of unspec_volatile.
	Use (match_dup 0) as input operand, remove input operand 2.

	* config/xtensa/xtensa.md (UNSPEC_MEMW): Rename from UNSPECV_MEMW.
	(memory_barrier): Expand as unspec instead of unspec_volatile.
	Remove mem:BLK from insn operands.  Use Pmode scratch register.
	(*memory_barrier): Define as unspec instead of unspec_volatile.
	Use (match_dup 0) as input operand.

	* config/ia64/sync.md (memory_barrier): Redefine as expander pattern.
	Remove mem:BLK from insn operands.  Use Pmode scratch register.
	Set volatile flag on operand 0.
	(*memory_barrier): New insn pattern.

	* config/rs6000/sync.md (memory_barrier): Remove mem:BLK from
	insn operands.
	(*memory_barrier): Use (match_dup 0) as input operand.

	* config/mips/sync.md (memory_barrier): Redefine as expander pattern.
	Remove mem:BLK from insn operands.  Use Pmode scratch register.
	Set volatile flag on operand 0.
	(*memory_barrier): New insn pattern.

	* config/alpha/sync.md (*memory_barrier): Rename from *mb_internal.

2009-01-04  Steven Bosscher  <steven@gcc.gnu.org>

	PR middle-end/38586
	* function.c (struct temp_slot): Move to the section of the file
	that deals with temp slots.  Remove field 'address'.
	(temp_slot_address_table): New hash table of address -> temp slot.
	(struct temp_slot_address_entry): New struct, items for the table.
	(temp_slot_address_compute_hash, temp_slot_address_hash,
	temp_slot_address_eq, insert_temp_slot_address): Support functions
	for the new table.
	(find_temp_slot_from_address): Rewrite to use the new hash table.
	(remove_unused_temp_slot_addresses): Remove addresses of temp
	slots that have been made available.
	(remove_unused_temp_slot_addresses_1): Call-back for htab_traverse,
	worker function for remove_unused_temp_slot_addresses.
	(assign_stack_temp_for_type): Don't clear the temp slot address list.
	Add the temp slot address to the address -> temp slot map.
	(update_temp_slot_address): Update via insert_temp_slot_address.
	(free_temp_slots): Call remove_unused_temp_slot_addresses.
	(pop_temp_slots): Likewise.
	(init_temp_slots): Allocate the address -> temp slot map, or empty
	the map if it is already allocated.
	(prepare_function_start): Initialize temp slot processing.

2009-01-04  Steven Bosscher  <steven@gcc.gnu.org>

	PR middle-end/38584
	* cfgexpand.c (estimate_stack_frame_size): Simplify the estimate:
	Calculate the size of all stack vars assuming no packing of stack
	vars will happen, replacing a quadratic algorithm with a linear one.

2009-01-03  Jakub Jelinek  <jakub@redhat.com>

	PR target/38707
	* expmed.c (store_bit_field_1): Don't modify op0 if movstrict insn
	can't be used.

2009-01-03  Diego Novillo  <dnovillo@google.com>

	* doc/contrib.texi: Update contributions.

2009-01-03  Jakub Jelinek  <jakub@redhat.com>

	PR c++/38705
	* builtins.c (fold_builtin_memory_op): Give up if either operand
	is volatile.  Set srctype or desttype to non-qualified version
	of the other type.

	PR c/38700
	* builtins.c (fold_builtin_expect): Only check DECL_WEAK for VAR_DECLs
	and FUNCTION_DECLs.

2009-01-02  Kenneth Zadeck <zadeck@naturalbridge.com>

	PR rtl-optimization/35805
	* df-problems.c (df_lr_finalize): Add recursive call to resolve lr
	problem if fast dce is able to remove any instructions.
	* dce.c (dce_process_block): Fix dump message.
	
2009-01-02  Mark Mitchell  <mark@codesourcery.com>

	PR 33649
	* tree-ssa-pre.c (compute_antic): Correct loop bounds.

2009-01-02  Jakub Jelinek  <jakub@redhat.com>

	PR middle-end/38690
	* tree-flow.h (op_code_prio, op_prio): New prototypes.
	* tree-pretty-print.c (op_code_prio): New function.
	(op_prio): No longer static.  Use op_code_prio.
	* gimple-pretty-print.c (dump_unary_rhs, dump_binary_rhs):
	Use op_prio and op_code_prio to determine if () should be
	printed around operand(s) or not.

	* gimple-pretty-print.c (dump_unary_rhs, dump_binary_rhs,
	dump_gimple_call, dump_gimple_switch, dump_gimple_cond,
	dump_gimple_label, dump_gimple_try, dump_symbols, dump_gimple_phi,
	dump_gimple_mem_ops, dump_bb_header, dump_bb_end, pp_cfg_jump): Use
	pp_character instead of pp_string for single letter printing.

2009-01-02  Richard Sandiford  <rdsandiford@googlemail.com>

	* doc/extend.texi: Fix '#pragma GCC option' typo.

2009-01-02 Richard Guenther <rguenther@suse.de>

	* doc/install.texi (--enable-checking): Mention different
	default for stage1.
	(--enable-stage1-checking): Document.

2009-01-01  Andrew Pinski  <pinskia@gmail.com>

	PR middle-end/30142
	* tree-cfg.c (verify_expr): Add INDIRECT_REF case.  Change MODIFY_EXPR
	case to be an error.

2009-01-02  Ben Elliston  <bje@au.ibm.com>

	* config/fp-bit.h (pack_d): Constify argument.
	* config/fp-bit.c (makenan): Constify return type. Remove casts.
	(isnan): Constify argument.
	(isinf): Likewise.
	(iszero): Likewise.
	(pack_d): Likewise.
	(_fpadd_parts): Constify return type.
	(_fpmul_parts): Likewise.
	(_fpdiv_parts): Likewise.

2009-01-01  Jakub Jelinek  <jakub@redhat.com>

	PR c/36489
	* c-typeck.c (add_pending_init): Add IMPLICIT argument.  Only
	warn about overwriting initializer with side-effects or
	-Woverride-init if !IMPLICIT.
	(output_init_element): Likewise.  Pass IMPLICIT down to
	add_pending_init.
	(process_init_element): Add IMPLICIT argument.  Pass it down
	to output_init_element.
	(push_init_element, pop_init_level, set_designator): Adjust
	process_init_element callers.
	(set_nonincremental_init, set_nonincremental_init_from_string):
	Adjust add_pending_init callers.
	(output_pending_init_elements): Adjust output_init_element callers.
	* c-tree.h (process_init_element): Adjust prototype.
	* c-parser.c (c_parser_initelt, c_parser_initval): Adjust
	process_init_element callers.