+2008-04-04 Naveen.H.S <naveen.hs@kpitcummins.com>
+
+ * doc/invoke.texi: Document -mbitops for SH.
+ * config/sh/constraints.md (K03, K12, Sbv, Sbw): New constraints.
+ * config/sh/predicates.md (bitwise_memory_operand): New predicate.
+ * config/sh/sh.c (print_operand): Add %t operand code.
+ * config/sh/sh.h (GO_IF_LEGITIMATE_INDEX): Add condition for SH2A.
+ * config/sh/sh.md (*iorsi3_compact): Fix condition for SH2A.
+ (extendqisi2_compact): Add the alternative for SH2A 4-byte mov.b.
+ (extendqihi2): Likewise.
+ (movqi_i): Likewise.
+ (insv): Use bset, bclr and bst instructions for SH2A if possible.
+ (extv): Use bld instruction for SH2A if possible.
+ (extzv): Likewise.
+ (bclr_m2a, bclrmem_m2a, bset_m2a, bsetmem_m2a, bst_m2a, bld_m2a,
+ bldsign_m2a, bld_reg, *bld_regqi, band_m2a, bandreg_m2a,
+ bor_m2a, borreg_m2a, bxor_m2a, bxorreg_m2a): New insns.
+ (bset.b, bclr.b): Define peepholes.
+ * config/sh/sh.opt (mbitops): New option.
+
+2008-04-04 Janis Johnson <janis187@us.ibm.com>
+
+ PR target/35620
+ * config/rs6000/rs6000.c (rs6000_check_sdmode): Handle indirect ref
+ and view convert expression.
+
+2008-04-04 Jakub Jelinek <jakub@redhat.com>
+
+ PR target/35364
+ * tree-cfg.c (remove_useless_stmts_1): Handle OMP_* containers.
+
+2008-04-04 H.J. Lu <hongjiu.lu@intel.com>
+
+ * config.gcc (extra_headers): Add wmmintrin.h for x86 and x86-64.
+
+ * config/i386/cpuid.h (bit_AES): New.
+ (bit_PCLMUL): Likewise.
+
+ * config/i386/i386.c (pta_flags): Add PTA_AES and PTA_PCLMUL.
+ (override_options): Handle PTA_AES and PTA_PCLMUL. Enable
+ SSE2 if AES or PCLMUL is enabled.
+ (ix86_builtins): Add IX86_BUILTIN_AESENC128,
+ IX86_BUILTIN_AESENCLAST128, IX86_BUILTIN_AESDEC128,
+ IX86_BUILTIN_AESDECLAST128, IX86_BUILTIN_AESIMC128,
+ IX86_BUILTIN_AESKEYGENASSIST128 and IX86_BUILTIN_PCLMULQDQ128.
+ (bdesc_sse_3arg): Add IX86_BUILTIN_PCLMULQDQ128.
+ (bdesc_2arg): Add IX86_BUILTIN_AESENC128,
+ IX86_BUILTIN_AESENCLAST128, IX86_BUILTIN_AESDEC128,
+ IX86_BUILTIN_AESDECLAST128 and IX86_BUILTIN_AESKEYGENASSIST128.
+ (bdesc_1arg): Add IX86_BUILTIN_AESIMC128.
+ (ix86_init_mmx_sse_builtins): Define __builtin_ia32_aesenc128,
+ __builtin_ia32_aesenclast128, __builtin_ia32_aesdec128,
+ __builtin_ia32_aesdeclast128,__builtin_ia32_aesimc128,
+ __builtin_ia32_aeskeygenassist128 and
+ __builtin_ia32_pclmulqdq128.
+ * config/i386/i386.c (ix86_expand_binop_imm_builtin): New.
+ (ix86_expand_builtin): Use it for IX86_BUILTIN_PSLLDQI128 and
+ IX86_BUILTIN_PSRLDQI128. Handle IX86_BUILTIN_AESKEYGENASSIST128.
+
+ * config/i386/i386.h (TARGET_AES): New.
+ (TARGET_PCLMUL): Likewise.
+ (TARGET_CPU_CPP_BUILTINS): Handle TARGET_AES and TARGET_PCLMUL.
+
+ * config/i386/i386.md (UNSPEC_AESENC): New.
+ (UNSPEC_AESENCLAST): Likewise.
+ (UNSPEC_AESDEC): Likewise.
+ (UNSPEC_AESDECLAST): Likewise.
+ (UNSPEC_AESIMC): Likewise.
+ (UNSPEC_AESKEYGENASSIST): Likewise.
+ (UNSPEC_PCLMUL): Likewise.
+
+ * config/i386/i386.opt (maes): New.
+ (mpclmul): Likewise.
+
+ * config/i386/sse.md (aesenc): New pattern.
+ (aesenclast): Likewise.
+ (aesdec): Likewise.
+ (aesdeclast): Likewise.
+ (aesimc): Likewise.
+ (aeskeygenassist): Likewise.
+ (pclmulqdq): Likewise.
+
+ * config/i386/wmmintrin.h: New.
+
+ * doc/extend.texi: Document AES and PCLMUL built-in function.
+
+ * doc/invoke.texi: Document -maes and -mpclmul.
+
+2008-04-04 Paolo Bonzini <bonzini@gnu.org>
+
+ * function.c (free_after_parsing): Replace with
+ cxx_push_function_context from C++ front-end.
+ (allocate_struct_function): Don't call langhook.
+ * langhooks.h (struct lang_hooks_for_functions): Delete.
+ (struct lang_hooks): Add back missing_noreturn_ok_p here, delete
+ member "function".
+ * langhooks-def.h (LANG_HOOKS_MISSING_NORETURN_OK_P): Add.
+ (LANG_HOOKS_FUNCTION_INIT, LANG_HOOKS_FUNCTION_FINAL,
+ LANG_HOOKS_FUNCTION_MISSING_NORETURN_OK_P,
+ LANG_HOOKS_FUNCTION_INITIALIZER): Delete.
+ (LANG_HOOKS_INITIALIZER): Add LANG_HOOKS_MISSING_NORETURN_OK_P,
+ remove LANG_HOOKS_FUNCTION_INITIALIZER.
+ * tree-cfg.c: Adjust call to missing_noreturn_ok_p langhook.
+
+ * c-objc-common.h (LANG_HOOKS_FUNCTION_MISSING_NORETURN_OK_P):
+ Rename to LANG_HOOKS_MISSING_NORETURN_OK_P.
+
+2008-04-04 Jakub Jelinek <jakub@redhat.com>
+
+ PR c/35440
+ * c-pretty-print.c (pp_c_initializer_list): Handle CONSTRUCTOR
+ for all types.
+
+2008-04-04 Richard Guenther <rguenther@suse.de>
+
+ PR middle-end/35823
+ * fold-const.c (optimize_minmax_comparison): Use the correct
+ type for the constant in the simplified comparison.
+
+2008-04-04 Zuxy Meng <zuxy.meng@gmail.com>
+
+ * config/i386/driver-i386.c (describe_cache): Add l2_sizekb argument.
+ Pass L2 size as "--param l2-cache-size" to the compiler.
+ (decode_l2_cache): New function to decode L2 cache parameters using
+ 0x8000006 extended cpuid function.
+ (detect_caches_amd): Determine parameters of L2 cache using
+ decode_l2_caches function.
+ (decode_caches_intel): Decode L2 cache parameters.
+ (detect_caches_intel): Determine L2 cache parameters using
+ decode_caches_intel and decode_l2_caches functions.
+
+2008-04-03 Bob Wilson <bob.wilson@acm.org>
+
+ * config/xtensa/xtensa.c (xtensa_secondary_reload_class): Use a
+ secondary input reload for subword loads from the constant pool.
+
+2008-04-03 Janis Johnson <janis187@us.ibm.com>
+
+ PR target/35713
+ * config/rs6000/rs6000.c (rs6000_gimplify_va_arg): Use integer
+ constants of the appropriate size for runtime calculations.
+
+ PR c/35712
+ * dfp.c (decimal_from_decnumber): Retain trailing zeroes for
+ decimal-float literal constant zero.
+
+2008-04-03 Jakub Jelinek <jakub@redhat.com>
+
+ PR c/35738
+ * c-parser.c (c_parser_omp_atomic): Call
+ default_function_array_conversion on the RHS.
+
+ PR middle-end/35818
+ * omp-low.c (scan_sharing_clauses) <case OMP_CLAUSE_SHARED>: Don't
+ call is_variable_sized if decl has incomplete type.
+
+2008-04-03 H.J. Lu <hongjiu.lu@intel.com>
+
+ * config/i386/i386-protos.h (ix86_aligned_p): Removed.
+
+2008-04-03 Adam Nemet <anemet@caviumnetworks.com>
+
+ * config/mips/mips.md (any_gt, any_ge, any_lt, any_le): New code
+ iterators.
+ (u): Add attribute values for gt, gtu, ge, geu, lt, ltu, le and
+ leu.
+ (sgt<u>): Merge sgt and sgtu into new expander.
+ (sgt, sgtu): Remove expanders.
+ (*sgt<u>_<mode>): Merge *sgt_<mode> and *sgtu_<mode> into new
+ pattern.
+ (*sgt_<mode>, *sgtu_<mode>): Remove patterns.
+ (*sgt<u>_<mode>_mips16): Merge *sgt_<mode>_mips16 and
+ *sgtu_<mode>_mips16 into new pattern.
+ (*sgt_<mode>_mips16, *sgtu_<mode>_mips16): Remove patterns.
+ (sge<u>): Merge sge and sgeu into new expander.
+ (sge, sgeu): Remove expanders.
+ (*sge<u>_<mode>): Merge *sge_<mode> and second *sge_<mode> into
+ new pattern.
+ (*sge_<mode>, second *sge_<mode>): Remove patterns.
+ (slt<u>): Merge slt and sltu into new expander.
+ (slt, sltu): Remove expanders.
+ (*slt<u>_<mode>): Merge *slt_<mode> and *sltu_<mode> into new
+ pattern.
+ (*slt_<mode>, *sltu_<mode>): Remove patterns.
+ (*slt<u>_<mode>_mips16): Merge *slt_<mode>_mips16 and
+ *sltu_<mode>_mips16 into new pattern.
+ (*slt_<mode>_mips16, *sltu_<mode>_mips16): Remove patterns.
+ (sle<u>): Merge sle and sleu into new expander.
+ (sle, sleu): Remove expanders.
+ (*sle<u>_<mode>): Merge *sle_<mode> and *sleu_<mode> into new
+ pattern.
+ (*sle_<mode>, *sleu_<mode>): Remove patterns.
+ (*sle<u>_<mode>_mips16): Merge *sle_<mode>_mips16 and
+ *sleu_<mode>_mips16 into new pattern.
+ (*sle_<mode>_mips16, *sleu_<mode>_mips16): Remove patterns.
+
2008-04-03 Jan Hubicka <jh@suse.cz>
PR tree-optimization/35795