2014-05-13 Andrew Pinski Bug#10636 * config/mips/mips.c (mips_block_move_straight) : Preserve memref's MEM_ATTRS. 2014-05-09 Andrew Pinski * testsuite/gcc.target/mips/shift-1.c: Disable for -O0. * testsuite/gcc.target/mips/movcc-4.c: Disable for -O0 * testsuite/gcc.target/mips/ext-14.c: Disable for -O0. 2014-05-08 Andrew Pinski * testsuite/gcc.target/mips/ins-3.c: Disable for -O0. * testsuite/gcc.target/mips/ins-4.c: Disable for -O0. * testsuite/gcc.target/mips/ins-6.c: Disable for -O0. * testsuite/gcc.target/mips/ins-7.c: Disable for -O0. * testsuite/gcc.target/mips/ins-8.c: Disable for -O0. 2014-05-08 Andrew Pinski * testsuite/gcc.target/mips/unaligned-3.c: Disable loop unrolling. 2014-05-08 Andrew Pinski * testsuite/gcc.target/mips/unaligned-1.c: Add -mno-octeon-useun. * testsuite/gcc.target/mips/unaligned-2.c: Skip -O0. 2012-07-19 Andrew Pinski * testsuite/gcc.target/mips/mips.exp (mips_option_tests): New test. (mips-dg-options): Treat all cases of -mhard-float as not being able to compile. 2014-04-25 Andrew Pinski * testsuite/gcc.target/mips/ext-12.c: Disable for -O0. * testsuite/gcc.target/mips/ext-9.c: Likewise. * testsuite/gcc.target/mips/extra-move-1.c: Likewise. * testsuite/gcc.target/mips/ins-9.c: Likewise. * testsuite/gcc.target/mips/octeon-dmul-4.c: Likewise. * testsuite/gcc.target/mips/truncate-10.c: Likewise. * testsuite/gcc.target/mips/truncate-11.c: Likewise. * testsuite/gcc.target/mips/truncate-12.c: Likewise. * testsuite/gcc.target/mips/truncate-13.c: Likewise. * testsuite/gcc.target/mips/truncate-9.c: Likewise. 2014-02-12 Andrew Pinski * optabs.c (emit_conditional_move): Fix bug with the previous change, need to check both modes of the compare and not just the original mode. 2014-02-12 Andrew Pinski Bug #9436 * optabs.c (emit_conditional_move): Only try using the same registers for the constant if the mode of the original compare and the other mode are equal. * gcc.c-torture/execute/20140212-1.c: New test. 2012-09-17 Andrew Pinski Bug #4705 * optabs.c (emit_conditional_move): Only try using the same registers for the constant if the modes are equal. * testsuite/gcc.c-torture/compile/20120917-1.c: New testcase. 2014-04-14 Andrew Pinski * testsuite/gcc.dg/tree-ssa/phi-opt-pass-order.c: Update for the no name ssa_name variable change. * testsuite/gcc.dg/tree-ssa/pr19431.c: Likewise. 2014-04-14 Andrew Pinski Bug #10070 * testsuite/gcc.dg/tree-ssa/vrp-assert-3.c: New testcase. * tree-vrp.c (register_edge_assert_for_2): Also assert when the conversion is from bool. 2014-04-13 Andrew Pinski * tree-ssa-phiopt.c: Include tree-cfgcleanup.h and tree-into-ssa.h (tree_ssa_phiopt_worker): Cleanup the CFG before the pass so that critial edges are merged. 2014-04-13 Andrew Pinski Bug #5136 Bug #9940 * testsuite/gcc.dg/tree-ssa/pr19431.c: Allow for ?: to show up also. 2014-04-13 Andrew Pinski Bug #9939 * passes.def: Move pass_late_warn_uninitialized to before the pass_late_phiopt pass. 2014-04-06 Andrew Pinski Bug #10070 * testsuite/gcc.dg/tree-ssa/vrp-assert-1.c: Remove the xfail. * testsuite/gcc.dg/tree-ssa/vrp-assert-2.c: New testcase. * tree-vrp.c (register_edge_assert_for_2): Look through casts for the comparision. 2014-03-30 Andrew Pinski * testsuite/gcc.dg/octeon/test-backtrace.h: Fix uninitialized warning. 2014-03-30 Andrew Pinski * testsuite/gcc.dg/octeon/test-backtrace.h: Fix unsigned comparing with signed warnings. 2014-03-30 Andrew Pinski * testsuite/gcc.dg/octeon/test-backtrace.h (n_functions): Change type to unsigned to avoid some warnings. 2014-03-26 Andrew Pinski Bug #9559 * config.host: Set use_long_long_for_widest_fast_int to yes for mips64*-*-*, aarch64*-*-*, and x86_64-*-*. 2014-03-25 Andrew Pinski * config/mips/mips.c (mips_rtx_cost_data): Add the missing movz fields. 2014-03-25 Andrew Pinski * config/mips/mips-tables.opt: Regenerate. 2013-11-04 Andrew Pinski * config/mips/mips.c (mips_block_move_straight): Fix O32 for misaligned cases. 2012-08-31 Andrew Pinski * config/mips/octeon.md (octeon_fpu): Add to the automaton. (octeon_fpu): New cpu unit. (octeon_condmove_o2): Check for non floating point modes. (octeon_load_o2): Add prefetchx. (octeon_cop_o2): Don't check for octeon3. (octeon3_faddsubcvt): New reservation. (octeon3_fmul): Likewise. (octeon3_fmadd): Likewise. (octeon3_div_sf): Likewise. (octeon3_div_df): Likewise. (octeon3_sqrt_sf): Likewise. (octeon3_sqrt_df): Likewise. (octeon3_rsqrt_sf): Likewise. (octeon3_rsqrt_df): Likewise. (octeon3_fabsnegmov): Likewise. (octeon_fcond): Likewise. (octeon_fcondmov): Likewise. (octeon_fpmtc1): Likewise. (octeon_fpmfc1): Likewise. (octeon_fpload): Likewise. (octeon_fpstore): Likewise. 2012-08-29 Andrew Pinski * config/mips/mips-cpus.def (octeon3): New cpu. * config/mips/mips-protos.h (mips_expand_cstore_fp): New prototype. * config/mips/mips.c (mips_rtx_cost_data): Add octeon3. (mips_expand_cstore_fp): New function. (mips_print_operand ): Fix a bug as the mode of the comparison no longer matches mode of the operands. (mips_issue_rate): Handle PROCESSOR_OCTEON3. (mips_option_override): If soft-float was not explicit and this is Octeon3, then change to hard float. Also don't error out for -mhard-float for Octeon3. * config/mips/mips.h (TARGET_OCTEON): Add Octeon3. (TARGET_OCTEON2): Likewise. (TARGET_OCTEON3): New define. (TUNE_OCTEON): Add Octeon3. * config/mips/mips.md (processor): Add octeon3. (cstore): New expand for SCALARF. * config/mips/octeon-linux.h (GNU_USER_DYNAMIC_LINKERN32): Define (GNU_USER_DYNAMIC_LINKER64): Likewise. * config/mips/octeon.h (MULTILIB_ISA_DEFAULT): Define. * config/mips/octeon.md (octeon_arith): Add octeon3. (octeon_set): Likewise. (octeon_condmove_o2): Likewise. (octeon_load_o2): Likewise. (octeon_cop_o2): Likewise. (octeon_store): Likewise. (octeon_brj_o2): Likewise. (octeon_imul3_o2): Likewise. (octeon_imul_o2): Likewise. (octeon_mfhilo_o2): Likewise. (octeon_imadd_o2): Likewise. (octeon_idiv_o2_si): Likewise. (octeon_idiv_o2_di): Likewise. * config/mips/predicates.md (mips_cstorefp_operator): New predicate. * config/mips/t-octeon-elf (MULTILIB_OPTIONS): Add march=octeon3. (MULTILIB_DIRNAMES): Likewise. (MULTILIB_EXCEPTIONS): Don't build the prefetch fixup multilib for Octeon3. * config/mips/t-octeon-linux (MULTILIB_OPTIONS): Add march=octeon3. (MULTILIB_OSDIRNAMES): Rewrite so it is clear what the multilib OS dir names are. 2012-08-01 Andrew Pinski Bug #2837 * config/mips/mips.c (TARGET_PROMOTE_PROTOTYPES): Remove definition. * config/mips/mips.md (*baddu_di_eb): New pattern to handle subreg from qi to di mode. (*baddu_di_el): Likewise. * testsuite/gcc.target/mips/ext-2.c: There should be no truncate here. 2012-08-01 Andrew Pinski continue bug #4296 * config/mips/octeon.md (octeon_condmove): Split into ... (octeon_condmove_o1): This and ... (octeon_condmove_o2): This. Also change the latency to 3. 2012-08-01 Andrew Pinski start of bug #4296 * config/mips/octeon.md (octeon_arith): Don't match slt for the type. (octeon_set): New reservation. Add bypass between octeon_set and octeon_brj_o2. 2014-03-20 Manjunath Matti Ported: 2012-07-16 Adam Nemet Andrew Pinski * basic-block.h (struct basic_block_def): Add new field probability. * builtins.def (BUILT_IN_BLOCK_PROB): New builtin. * predict.def (PRED_BUILTIN_BLOCK_PROB): New predictor. * common.opt (flag_propagate_block_prob): New option. * predict.c (compute_block_prob): New function. Set basic block probablity from builtin_block_prob (propagate_block_prob): New functions. Propagate branch probabilities backward in the CFG. (tree_estimate_probability): Invoke them. (tree_predict_by_opcode): Copy BB probablity to edge. * builtins.c (expand_builtin): Handle BUILT_IN_BLOCK_PROB. 2014-03-14 Manjunath Matti Ported: 2012-07-16 Adam Nemet Andrew Pinski * postreload-load.c: New file. * Makefile.in (OBJS-common): Add postreload-load.o. * common.opt (fpostreload-load): New option. * timevar.def: Add TV_LOAD_AFTER_RELOAD timevar. * tree-pass.h (pass_postreload_load): Declare. * passes.def: Add pass_postreload_load. 2014-03-13 Manjunath Matti Ported: 2012-07-16 Adam Nemet Andrew Pinski * tree-merge-const-bfstores.c: New file. * Makefile.in (OBJS-common): Add tree-merge-const-bfstores.o. * timevar.def: Add TV_MERGE_CONST_BFSTORES timevar. * tree-pass.h (pass_merge_const_bfstores): Declare. * passes.def: Add pass_merge_const_bfstores. 2014-03-11 Manjunath Matti 2012-07-15 Andrew Pinski Bug #4290 * tree-vrp.c (vrp_stmt_computes_nonzero): Return true for some builtins (memcpy and memmove). (infer_value_range): Infer the nonzero for some arguments to some builtins (memcpy, memmove, strcmp and memcmp). * testsuite/gcc.dg/tree-ssa/vrp-builtins1.c: New testcase. 2014-03-05 Andrew Pinski Bug #9685 * config/mips/mips.md (movmisalign): Fix mem operand that is passed to mips_expand_ins_as_unaligned_store and mips_expand_ext_as_unaligned_load. 2014-02-05 Andrew Pinski * testsuite/gcc.dg/octeon/cvmx/bt-1.c: Fix warnings. * testsuite/gcc.dg/octeon/cvmx/bt-2.c: Fix warnings. * testsuite/gcc.dg/octeon/cvmx/bt-3.c: Fix warnings. * testsuite/gcc.dg/octeon/cvmx/bt-4.c: Fix warnings. * testsuite/gcc.dg/octeon/cvmx/bt-5.c: Fix warnings. 2014-02-03 Andrew Pinski * config/mips/mips.md (condmode): New insn attribute. (*mov_on_): Add condmode. (*mov_on__ne): Likewise. (*mov_on_): Likewise. * config/mips/octeon.md (octeon_condmove_o2): Don't match on CC for condmode. (octeon_condmove_o3_int_on_cc): New reserve. 2014-01-21 Andrew Pinski Bug #9190 * combine.c (combine_simplify_rtx): Produce if_then_else when either true or false side is constant but not both after we got a comparison back from simplify_comparison. 2013-10-24 Andrew Pinski Bug #8531 * tree-ssa-sccvn.c (fully_constant_vn_reference_p): Don't simplify __builtin_constant_p. 2013-10-06 Andrew Pinski * config/rs6000/linux64.h (PROFILE_USE_ATOMIC): Define. 2013-10-06 Andrew Pinski Bug #8305 * config/linux.h (PROFILE_USE_ATOMIC): New define. * config/rs6000/linux.h (PROFILE_USE_ATOMIC): Likewise. * gcc/gcc.c (PROFILE_USE_ATOMIC): Define. (LINK_COMMAND_SPEC): Use PROFILE_USE_ATOMIC. 2013-08-16 Andrew Pinski Bug #7620 * tree-ssa-loop-ivopts.c (get_computation_cost_at): Reject pointer candidates for non-linear uses. 2013-06-10 Andrew Pinski * config/mips/mips.c (mips_classify_symbol): Consider local symbols as global when -mxgot is used. 2013-05-24 Andrew Pinski Bug #4781 * testsuite/lib/target-supports.exp (check_vect_support_and_set_flags): Set dg-do-what-default to compile for octeon targets. 2013-05-20 Andrew Pinski * config/mips/mips.c (mips_expand_ext_as_unaligned_load): Allow BLKmode mem for 16 bit extraction. Fix the case where the dest is SImode for 16bit extraction. Fix the case where the dest is HImode for 16bit extraction. 2013-04-26 Andrew Pinski * reload1.c (spill_failure): Use inform instead of error to force the notion that the error message is really an internal compiler error message. (_fatal_insn): Likewise. 2013-01-30 Andrew Pinski * testsuite/gcc.dg/octeon/pipeline-1.c: Add -march=octeon to force octeon tuning. 2013-01-22 Andrew Pinski * cfgexpand.c (expand_debug_expr ): Handle BYTESWAP_EXPR. 2012-12-17 Andrew Pinski * config/mips/octeon-elf.h (DWARF_FRAME_REGISTERS): Define to 66. Speeds up unwinding by almost by a factor of 2. 2012-11-29 Andrew Pinski Bug #5464 * tree-vrp.c (register_edge_assert_for_2): In the case of NAME != 0 and NAME being defined as XYZ1 CMP XYZ2 we can assert XYZ1 CMP XYZ2. 2012-11-19 Andrew Pinski * testsuite/g++.dg/cpp0x/initlist-lifetime1.C: Fix testcase where argc is always greater than 1 (octeon simulator). * testsuite/g++.dg/cpp0x/initlist-lifetime2.C: Likewise. 2012-11-18 Andrew Pinski Port from the redhat branch: * gcc.c (execute): Free string if i is not 0. (execute): Call retry_ice if the program which caused an ICE started with "cc1". (retry_ice): New function. 2012-11-17 Andrew Pinski * testsuite/gcc.dg/octeon/ext-33.c: Xfail due to bug 2851. 2012-11-17 Andrew Pinski * testsuite/gcc.dg/uninit-pred-8_b.c: xfail because of bug 4568. * testsuite/gcc.dg/uninit-pred-9_b.c: Likewise. 2012-11-17 Andrew Pinski * testsuite/g++.dg/debug/nullptr01.C: xfail the second scan-assembler. 2012-11-12 Andrew Pinski Bug #5253 * tree-merge-const-bfstores.c (compute_new_bitfield_positions): Fix for little-endian. (gate_merge_const_bfstores): Don't disable for little-endian targets. 2012-11-09 Andrew Pinski * testsuite/gcc.c-torture/compile/limits-structnest.c: Disable unless requested; uses a lot of memory. 2012-11-08 Andrew Pinski Bug #5214 * combine.c (try_combine): After the first two subst, don't combine any more if we gotten a sequence. 2012-11-06 Andrew Pinski * testsuite/gcc.target/mips/inter/mips16-inter.exp: Skip for mipsisa*-octeon-elf*. 2012-11-04 Andrew Pinski * gcc.target/mips/extra-move-1.c: Tighten the matching of sll so it does not match dsll which is used to generate addresses in n64. 2012-11-03 Andrew Pinski * testsuite/lib/target-supports.exp (check_effective_target_mips_n64_abicalls): New proc. * testsuite/gcc.dg/octeon/ext-42.c: Change the testcase to check for 3 ld if we are n64 with ABI calls. 2012-11-03 Andrew Pinski * testsuite/gcc.dg/octeon/ext-45.c: Tighten the matching of sll so it does not match dsll which is used to generate addresses in n64. 2012-11-03 Andrew Pinski * testsuite/gcc.dg/octeon/bbit-1.c: Remove as the testcase is optimized better than before even though bbit is not produced. Also bbit-10.c represents the problem the testcase was testing. 2012-11-02 Andrew Pinski Bug #5138 * testsuite/gcc.target/mips/mips32-dsp.c: Don't include stdlib.h or stdio.h. Declare abort and exit. 2012-11-02 Andrew Pinski * testsuite/gcc.dg/octeon/ext-42.c: Add note on why this fails for linux n64. * testsuite/gcc.dg/octeon/ins-3.c: Check for usd only on the elf targets. Check for sdr/sdl on the linux targets. * testsuite/gcc.dg/octeon/trunc-20.c: Tighten the .* so it does not match a return. 2012-11-02 Andrew Pinski * testsuite/gcc.dg/octeon/ext-26.c: Check for uld only on the elf targets. Check for ldr/ldl on the linux targets. * testsuite/gcc.dg/octeon/ext-28.c: Likewise. 2012-10-30 Andrew Pinski * testsuite/gcc.dg/octeon/test-backtrace.h (compare): Fix for LP64 targets where the subtraction could truncate to 0. 2012-10-27 Andrew Pinski Bug #5056 * expr.c (expand_assignment): Set the correct alignment on the mem when doing a movemisalign. (expand_expr_real_1 ): Likewise. (expand_expr_real_1 ): Likewise. * testsuite/gcc.c-torture/compile/20121027-1.c: New testcase. 2012-10-11 Andrew Pinski * combine.c (combine_simplify_rtx): Simplify SEQUENCEs. If we have a set of zero followed by a zero_extract, this can be simplified to a shift. 2012-10-11 Andrew Pinski * config.gcc (mips*-*-linux*): mips*-octeon-linux* and mips*-montavista-linux* default to n64 and don't support mips16 or o32 and default to soft-float. 2012-10-10 Andrew Pinski Part of bug #4903 * config.gcc (mips64*-*-linux*): Support mips64*-montavista-linux* as an alias to mips64*-octeon-linux*. * config/mips/mips.c (octeon_output_shared_variable): Disable if CVMX_SHARED_BSS_FLAGS is not define. 2012-10-07 Andrew Pinski * testsuite/gcc.dg/octeon/trunc-10.c: Look for \tsll rather than just sll as that will match dsll which is used for n64 addresses. * testsuite/gcc.dg/octeon/trunc-31.c: Likewise. 2012-09-21 Andrew Pinski Bug #4620 * testsuite/gcc.dg/octeon/madd-1.c: Fix testcase. * testsuite/gcc.dg/octeon/madd-2.c: Fix testcase. * testsuite/gcc.dg/octeon/madd-3.c: Fix testcase. * testsuite/gcc.dg/octeon/madd-4.c: Fix testcase. 2012-09-13 Andrew Pinski * combine.c (simplify_set): Only simplify (set (subreg (x)) (y) when the subreg is a paradoxical subreg. * testsuite/gcc.c-torture/compile/20120913-1.c: New testcase. 2012-09-03 Andrew Pinski Bug #4370 Bug #4569 * tree-ssa-phiopt.c (simple_cond_move_replacement): Manually create the assignment of the conditional expression. 2012-08-29 Andrew Pinski * combine.c (simplify_set): Simplify (set (subreg (a)) (b)) to (set (a) (subreg (b)) iff (subreg (b)) simplifies. 2012-08-29 Andrew Pinski * testsuite/gcc.dg/octeon/cvmx/bt-2.c: Fix warnings. * testsuite/gcc.dg/octeon/test-backtrace.h: Fix warnings. 2014-02-07 Andrew Pinski * simplify-rtx.c (simplify_subreg): Simplify (subreg (and/ior (a) (b))) to (and/ior (subreg (a)) (subreg (b))) iff either (subreg (a)) or (subreg (b)) simplifies and either (a) or (b) were not a constant integer. 2012-08-28 Andrew Pinski Bug #4375 * optabs.c (emit_conditional_move): Try using the same registers for the same constants. 2012-08-28 Andrew Pinski * optabs.c (emit_conditional_move): If prepare_cmp_insn does not work, try with a swaped comparison. 2012-08-28 Andrew Pinski * config/i386/i386.c (ix86_expand_int_movcc): If emit_store_flag fails, move on to the next case. 2012-08-23 Andrew Pinski Bug #4368 * tree-ssa-phiopt.c (simple_cond_move_replacement): Use fold_build2_loc to create the comparision. Use fold_build3_loc to create the conditional expression using the location of the comparision. Also remove the variable from the call to force_gimple_operand_gsi. 2012-08-22 Andrew Pinski Bug #4550 * ipa-inline.c (inline_small_functions): For max_count, use the max also from indirect calls if doing indirect inlinining. 2012-08-22 Andrew Pinski Bug #4552 * combine.c (combine_simplify_rtx): For RTX_BITFIELD_OPS and RTX_TERNARY, set op0_mode to op0 mode if it was VOIDmode. 2012-08-13 Andrew Pinski * config/mips/sync.md (sync_): Remove. (sync_old_): Remove. (sync_new_): Remove. (atomic_fetch_): New pattern. (atomic_): New pattern. (atomic__fetch): New expand. 2012-08-12 Andrew Pinski * testsuite/gcc.target/mips/atomic-memory-2.c: Forbid octeon2 as law is used instead. * testsuite/gcc.target/mips/fix-r10000-1.c: Likewise. * testsuite/gcc.target/mips/fix-r10000-15.c: Likewise. * testsuite/gcc.target/mips/fix-r10000-2.c: Likewise. * testsuite/gcc.target/mips/fix-r10000-7.c: Likewise. * testsuite/gcc.target/mips/fix-r10000-8.c: Likewise. +2012-08-12 Andrew Pinski * config/mips/sync.md (atomic_add_saa): Fix memory constraint, should be ZR and not R. 2012-08-08 Andrew Pinski * config/mips/sync.md (sync_old_sub): Remove. (sync_new_sub): Remove. 2012-08-08 Andrew Pinski * config/mips/sync.md (atomic_fetch_sub): New expand. (atomic_sub_fetch): New expand. (atomic_fetch_sub_llsc): New pattern. 2012-08-08 Andrew Pinski * config/mips/sync.md (sync_sub): Remove. (sync_old_add): Remove. (sync_new_add): Remove. 2012-08-08 Andrew Pinski * config/mips/sync.md (atomic_sub): New expand. (atomic_sub_llsc): New pattern. 2012-08-08 Andrew Pinski * config/mips/sync.md (sync_compare_and_swap): Delete (sync_add): Delete. 2012-08-08 Andrew Pinski * config/mips/sync.md (UNSPEC_MEMORY_BARRIER_R): New unspec. (memory_barrier_r): New expand. (*memory_barrier_r): New pattern. (atomic_load): For octeon emit memory_barrier_r so the load will be done at the correct location. 2012-08-07 Andrew Pinski * config/mips/sync.md (UNSPEC_ATOMIC_OP): New unspec. (atomic_add): New expand. (atomic_add_llsc): New pattern. (atomic_add_saa): New pattern. 2012-08-07 Andrew Pinski * config/mips/mips.md (INT1): New mode iterator. * config/mips/sync.md (UNSPEC_MEMORY_BARRIER_W): New unspec. (memory_barrier_w): New expand. (memory_barrier_w_internal): New pattern. (atomic_store): New expand. (atomic_load): New expand. 2012-08-07 Andrew Pinski * config/mips/sync.md (atomic_add_fetch): New pattern. 2012-08-07 Andrew Pinski * config/mips/mips.c (mips_process_sync_loop): Always emit syncw for Octeon instead of sync. * config/mips/mips.opt (msyncw): Remove option. * config/mips/sync.md (atomic_compare_and_swap): Add a few comments about the operands. (atomic_exchange_law): Don't emit syncw after the law/lac/las. (atomic_fetch_add_laa): Don't emit syncw after the laa/lad/lai. 2012-08-07 Andrew Pinski * config/mips/mips.opt (msyncw): New option. * config/mips/mips.c (mips_process_sync_loop): Emit a sync only if model is MEMMODEL_SEQ_CST and not when msyncw is enabled. Only emit one syncw for Octeon2. 2012-08-07 Andrew Pinski * config/mips/predicates.md (law_lac_las_operand): New predicate. * config/mips/sync.md (atomic_exchange_law): Add support for emitting las and lac. 2012-08-06 Andrew Pinski * config/mips/mips.h (ISA_HAS_LAW): New define. * config/mips/sync.md (atomic_exchange): Add support for emitting law. (gen_atomic_exchange_llsc): Disable it for ISA_HAS_LAW. (atomic_exchange_law): New pattern. 2012-08-06 Andrew Pinski * config/mips/constraints.md (YD): New constraint. (YI): Likewise. * config/mips/predicates.md (lai_operand): New predicate. (lad_operand): Likewise. (laa_lai_lad_operand): Likewise. * config/mips/sync.md (atomic_fetch_add_laa): Add support for emitting lai and lad. 2012-08-06 Andrew Pinski * config/mips/mips.h (ISA_HAS_LAA): New define. (ISA_HAS_SAA): Likewise. * config/mips/sync.md (atomic_fetch_add): Add support for emitting laa. (atomic_fetch_add_llsc): Disable it for ISA_HAS_LAA. (atomic_fetch_add_laa): New pattern. 2012-08-02 Andrew Pinski * config/mips/mips.md: Add to the comment about "Bit field extract patterns". 2012-08-02 Andrew Pinski * config/mips/mips.md (mulsi3_highpart): Disable if we have dmul3. (mulsi3_highpart_internal): Likewise. * testsuite/gcc.target/mips/octeon-dmul-4.c: New testcase. 2012-08-01 Andrew Pinski * testsuite/gcc.dg/tree-ssa/ssa-fre-4.c: Don't compile on mips. 2012-08-01 Andrew Pinski Bug #3596 * combine.c (simplify_shift_const_1 ): Handle ASHIFTRT like LSHIFTRT but use ASHIFTRT as the final result. * testsuite/gcc.target/mips/shift-1.c: New testcase. 2012-08-01 Andrew Pinski Bug #3266 * fold-const.c (build_range_check): Use either unsigned_type_node or integer_type_node for the type if the precision of the original type is smaller than the precision of integer_type_node. 2012-08-01 Andrew Pinski start of bug #4296 * config/mips/octeon.md (octeon_arith): Don't match slt for the type. 2012-08-01 Andrew Pinski start of Bug #4290 * config/mips/mips.c (mips_block_move_straight): Use 32bits loads if the length is equal to 4 bytes and either of the alignments is greater than or equal to 32bits. Also use 32bits when either of the alignment is equal to 32bits not just when both are equal. 2012-08-01 Andrew Pinski * config/mips/mips.c (mips_rtx_costs ): The truncate inside a sign_extend or a zero_extend is free. 2012-07-31 Andrew Pinski * combine.c (simplify_logical): Add in_cond argument. Simplify when the both operands are subregs. (combine_simplify_rtx): Update call to simplify_logical. * simplify-rtx.c (simplify_unary_operation_1 ): (sign_extend:M (and:M X (const_int I)) can be converted over to using zero_extend if I does not have the sign bit set. * testsuite/gcc.target/mips/ext-15.c: New testcase. * testsuite/gcc.target/mips/ext-5.c: Also allow dext instead of just ext. 2012-07-31 Adam Nemet * mips.md (split for equality comparison with non-zero constant): New. * testsuite/gcc.target/mips/ext-14.c: New testcase. 2012-07-31 Andrew Pinski Bug #2970 * simplify-rtx.c (simplify_subreg): Simplify a paradoxical subreg of a truncate. * testsuite/gcc.target/mips/extend-1.c: Check for two sll and only three dsll/dsra and one seb and one seh. * testsuite/gcc.target/mips/truncate-13.c: New testcase. 2012-07-31 Andrew Pinski * config/mips/mips.c (mips_immediate_operand_p): Remove. (mips_rtx_costs): Cost of CONST and SYMBOL_REF are zero. Remove the code that says constants are (close to) free. * config/mips/predicates.md (move_operand): Remove old comment that does not apply. Return true for CONST_INT. * config/mips/mips.md: New splitter for splitting of constant integers. * testsuite/gcc.target/mips/const-anchor-1.c: Support subtracting 2. 2012-07-30 Andrew Pinski * config/mips/mips.c (mips_zero_extend_cost): Fix cost of zero extending to DImode from SImode for ISA_HAS_EXT_INS. 2012-07-30 Andrew Pinski * config/mips/mips.c (mips_rtx_costs): Provide the correct cost of an expanded ins/dins. 2012-07-30 Andrew Pinski Bug #2923 * combine.c (find_split_point): Handle PLUS/MINUS specially when there is no split point for either operands. 2012-07-30 Andrew Pinski * tree-pass.h (pass_late_phiopt): New variable. * passes.def (init_optimization_passes): Use pass_late_phiopt for the last pass_phiopt. * tree-ssa-phiopt.c (tree_ssa_phiopt_worker): Add late argument. Call simple_cond_move_replacement if nothing changed the phi and this is the late phiopt. (tree_ssa_phiopt): Update call to tree_ssa_phiopt_worker. (tree_ssa_cs_elim): Likewise. (tree_ssa_late_phiopt): New function. (hard_float_target): New function. (block_with_single_simple_statement): New function. (simple_cond_move_replacement): New function. (pass_late_phiopt): New variable. * testsuite/gcc.target/mips/octeon-seq-5.c: New testcase. * testsuite/gcc.target/mips/movcc-5.c: New testcase. 2012-07-27 Andrew Pinski * optabs.c (emit_conditional_move): Allow libcalls too for the comparison (allows conditional moves for soft-float). 2012-07-27 Adam Nemet * cfgloopanal.c (init_set_costs): Exclude call-used registers from available registers. 2012-07-27 Adam Nemet * config/mips/mips.c (TARGET_SCHED_ADJUST_PRIORITY): New macro. (mips_adjust_priority): New function. 2012-07-27 Andrew Pinski * regcprop.c (TARGET_CAN_COPY_MODES): New define. (maybe_mode_change): Use TARGET_CAN_COPY_MODES to check if we can do the copy. * config/mips/mips.h (TARGET_CAN_COPY_MODES): Define. 2014-03-04 Manjunath Matti * config/mips/mips.md (and3): Correct the last patch. (ior3): Likewise. 2012-07-26 Andrew Pinski Bug #3261 * testsuite/gcc.target/mips/movcc-4.c: New testcase. 2012-07-26 Andrew Pinski Bug #2854 Bug #2965 * config/mips/mips.md (*3_trunc): New pattern. (*ashl_truncsi3): Likewise. (*ashl_truncsi3_trunc): Likewise. (*ashl_truncsi3_extend): Likewise. * testsuite/gcc.target/mips/truncate-10.c: New testcase. * testsuite/gcc.target/mips/truncate-11.c: New testcase. * testsuite/gcc.target/mips/truncate-12.c: New testcase. 2012-07-26 Adam Nemet * config/mips/mips.md (ior3): Use uns_arith_or_bitmask_operand. Expand early bitmask_operand cases. * config/mips/predicates.md (uns_arith_or_bitmask_operand): New predicate. * testsuite/gcc.target/mips/ins-8.c: New testcase. * testsuite/gcc.target/mips/ins-9.c: New testcase. 2014-02-28 Manjunath Matti * config/mips/mips.c (mips_expand_ext_as_unaligned_load): Fix ISA_HAS_UL_US case. 2014-02-23 Andrew Pinski * testsuite/gcc.dg/octeon/misc/serial-profopt.exp: Disable for now. 2014-02-21 Andrew Pinski * testsuite/gcc.dg/octeon/misc/merge-gcda.exp: Disable for now. 2014-02-19 Andrew Pinski * config/mips/mips.c (mips_expand_ins_as_unaligned_store): Fix ISA_HAS_UL_US case. 2014-02-19 Andrew Pinski * config/mips/mips.md (*and3): Correct the last patch. 2012-07-26 Andrew Pinski Adam Nemet * testsuite/gcc.target/mips/ext-12.c: New test. * testsuite/gcc.target/mips/ext-13.c: New test. 2012-07-25 Andrew Pinski Adam Nemet * config/mips/mips.md (and3): Add support for bitmask_operand, expanding them early. * config/mips/predicates.md (and_reg_operand): Rename to ... (and_reg_without_bitmask_operand): This. (and_reg_operand): New operand. (and_operand): Use and_reg_without_bitmask_operand. * testsuite/gcc.target/mips/ext-11.c: New test. 2012-07-25 Andrew Pinski Adam Nemet * config/mips/constraints.md (Yy): New constraint. * config/mips/mips.md (*and3): Add Yy constraint support. (split for and of an ins reg,$0,): Split the and if the destination not the same as the first operand of the and. * config/mips/predicates.md (and_reg_operand): Add inverse_bitmask_operand. * testsuite/gcc.target/mips/ins-6.c: New testcase. * testsuite/gcc.target/mips/ins-7.c: New testcase. * testsuite/gcc.target/mips/ins-5.c: New testcase. 2012-07-25 Andrew Pinski * config/mips/mips.md (movmisalign): New expand for expanding unaligned load/stores. 2012-07-25 Andrew Pinski Adam Nemet * config/mips/mips-protos.h (mips_bitmask, mips_bitmask_p, mips_bottom_bitmask_p): Declare them. * config/mips/mips.c (mips_bitmask, mips_bitmask_p, mips_bottom_bitmask_p): New functions. * config/mips/mips.md (*insv_internal1): New pattern to match a bottom insert. (*insv_internal2): Likewise. (*insv_internal3): New pattern to match an insert. (*insv_internal4): Likewise. * config/mips/predicates.md (bitmask_operand bottom_bitmask_operand, inverse_bitmask_operand): New predicates. * testsuite/gcc.target/mips/ins-4.c: New testcase. 2012-07-25 Adam Nemet Andrew Pinski * config/mips/mips.opt (mmad): New option. * config/mips/mips.h (ISA_HAS_MADD_MSUB): Use it. * testsuite/gcc.target/mips/mips.exp: Add madd to mips_option_groups. * testsuite/gcc.target/mips/madd-10.c: New testcase. 2012-07-25 Andrew Pinski * testsuite/gcc.target/mips/ext-10.c: Add isa_rev>=2. * testsuite/gcc.target/mips/ext-9.c: Likewise. * testsuite/gcc.target/mips/ins-3.c: Likewise. * testsuite/gcc.target/mips/truncate-9.c: Likewise. 2012-07-25 Andrew Pinski * config/mips/mips.md (extv): Use sll for extraction of the lower 32bits. 2012-07-24 Andrew Pinski * combine.c (combine_validate_cost): Print out the costs even if successive. 2012-07-24 Adam Nemet * Makefile.in (GCOV_DUMP_INSTALL_NAME): New variable. (install-common): Install gcov-dump also. 2012-07-24 Andrew Pinski * testsuite/lib/profopt.exp: Delete also the .gcda on the build machine. 2012-07-24 Andrew Pinski * regcprop.c (maybe_mode_change): Return the reg in the new mode if the copy was done in the same mode size. * config/mips/mips.md (extendsidi2): Add expanding in a different register; split the move in DImode. * testsuite/gcc.target/mips/extra-move-1.c: new testcase. 2012-07-24 Andrew Pinski * testsuite/gcc.target/mips/ext-10.c: Remove check for octeon target and use -mgp64 for the options. * testsuite/gcc.target/mips/ext-9.c: Likewise. * testsuite/gcc.target/mips/ins-3.c: Likewise. * testsuite/gcc.target/mips/truncate-7.c: Likewise. * testsuite/gcc.target/mips/truncate-8.c: Likewise. * testsuite/gcc.target/mips/truncate-9.c: Likewise. * testsuite/gcc.target/mips/unaligned-3.c: Likewise. * testsuite/gcc.target/mips/unaligned-4.c: Likewise. 2012-07-24 Andrew Pinski Bug #3201 * combine.c (simplify_set): After force_to_mode is called, simplify the rtl. * testsuite/gcc.target/mips/ext-10.c: New testcase. * testsuite/gcc.target/mips/ext-9.c: New testcase. * testsuite/gcc.target/mips/ins-3.c: New testcase. * testsuite/gcc.target/mips/truncate-9.c: New testcase. 2012-07-24 Adam Nemet * testsuite/lib/scangcda.exp: New file. 2012-07-24 Adam Nemet Andrew Pinski Chandrakala Chavva * testsuite/gcc.dg/octeon/badd-1.c: New testcase. * testsuite/gcc.dg/octeon/badd-2.c: New testcase. * testsuite/gcc.dg/octeon/badd-3.c: New testcase. * testsuite/gcc.dg/octeon/badd-4.c: New testcase. * testsuite/gcc.dg/octeon/badd-5.c: New testcase. * testsuite/gcc.dg/octeon/badd-6.c: New testcase. * testsuite/gcc.dg/octeon/badd-7.c: New testcase. * testsuite/gcc.dg/octeon/badd-8.c: New testcase. * testsuite/gcc.dg/octeon/badd-9.c: New testcase. * testsuite/gcc.dg/octeon/bbit-1.c: New testcase. * testsuite/gcc.dg/octeon/bbit-10.c: New testcase. * testsuite/gcc.dg/octeon/bbit-12.c: New testcase. * testsuite/gcc.dg/octeon/bbit-13.c: New testcase. * testsuite/gcc.dg/octeon/bbit-2.c: New testcase. * testsuite/gcc.dg/octeon/bbit-3.c: New testcase. * testsuite/gcc.dg/octeon/bbit-4.c: New testcase. * testsuite/gcc.dg/octeon/bbit-5.c: New testcase. * testsuite/gcc.dg/octeon/bbit-6.c: New testcase. * testsuite/gcc.dg/octeon/bbit-7.c: New testcase. * testsuite/gcc.dg/octeon/bbit-8.c: New testcase. * testsuite/gcc.dg/octeon/bbit-9.c: New testcase. * testsuite/gcc.dg/octeon/bt-1.c: New testcase. * testsuite/gcc.dg/octeon/bt-2.c: New testcase. * testsuite/gcc.dg/octeon/bt-3.c: New testcase. * testsuite/gcc.dg/octeon/bt-4.c: New testcase. * testsuite/gcc.dg/octeon/bt-5.c: New testcase. * testsuite/gcc.dg/octeon/bug1546-1.c: New testcase. * testsuite/gcc.dg/octeon/bug1554-1.c: New testcase. * testsuite/gcc.dg/octeon/bug401.c: New testcase. * testsuite/gcc.dg/octeon/bug985-1.c: New testcase. * testsuite/gcc.dg/octeon/bug985-2.c: New testcase. * testsuite/gcc.dg/octeon/cins-1.c: New testcase. * testsuite/gcc.dg/octeon/cins-2.c: New testcase. * testsuite/gcc.dg/octeon/cins-3.c: New testcase. * testsuite/gcc.dg/octeon/clz-1.c: New testcase. * testsuite/gcc.dg/octeon/clz-2.c: New testcase. * testsuite/gcc.dg/octeon/cmov-1.c: New testcase. * testsuite/gcc.dg/octeon/cmov-2.c: New testcase. * testsuite/gcc.dg/octeon/cond_expr-1.c: New testcase. * testsuite/gcc.dg/octeon/cond_expr-2.c: New testcase. * testsuite/gcc.dg/octeon/dpopcount.c: New testcase. * testsuite/gcc.dg/octeon/ext-1.c: New testcase. * testsuite/gcc.dg/octeon/ext-10.c: New testcase. * testsuite/gcc.dg/octeon/ext-11.c: New testcase. * testsuite/gcc.dg/octeon/ext-12.c: New testcase. * testsuite/gcc.dg/octeon/ext-13.c: New testcase. * testsuite/gcc.dg/octeon/ext-14.c: New testcase. * testsuite/gcc.dg/octeon/ext-15.c: New testcase. * testsuite/gcc.dg/octeon/ext-16.c: New testcase. * testsuite/gcc.dg/octeon/ext-17.c: New testcase. * testsuite/gcc.dg/octeon/ext-18.c: New testcase. * testsuite/gcc.dg/octeon/ext-19.c: New testcase. * testsuite/gcc.dg/octeon/ext-2.c: New testcase. * testsuite/gcc.dg/octeon/ext-20.c: New testcase. * testsuite/gcc.dg/octeon/ext-21.c: New testcase. * testsuite/gcc.dg/octeon/ext-22.c: New testcase. * testsuite/gcc.dg/octeon/ext-23.c: New testcase. * testsuite/gcc.dg/octeon/ext-24.c: New testcase. * testsuite/gcc.dg/octeon/ext-25.c: New testcase. * testsuite/gcc.dg/octeon/ext-26.c: New testcase. * testsuite/gcc.dg/octeon/ext-27.c: New testcase. * testsuite/gcc.dg/octeon/ext-28.c: New testcase. * testsuite/gcc.dg/octeon/ext-29.c: New testcase. * testsuite/gcc.dg/octeon/ext-30.c: New testcase. * testsuite/gcc.dg/octeon/ext-31.c: New testcase. * testsuite/gcc.dg/octeon/ext-32.c: New testcase. * testsuite/gcc.dg/octeon/ext-33.c: New testcase. * testsuite/gcc.dg/octeon/ext-34.c: New testcase. * testsuite/gcc.dg/octeon/ext-35.c: New testcase. * testsuite/gcc.dg/octeon/ext-36.c: New testcase. * testsuite/gcc.dg/octeon/ext-37.c: New testcase. * testsuite/gcc.dg/octeon/ext-38.c: New testcase. * testsuite/gcc.dg/octeon/ext-39.c: New testcase. * testsuite/gcc.dg/octeon/ext-4.c: New testcase. * testsuite/gcc.dg/octeon/ext-40.c: New testcase. * testsuite/gcc.dg/octeon/ext-41.c: New testcase. * testsuite/gcc.dg/octeon/ext-42.c: New testcase. * testsuite/gcc.dg/octeon/ext-43.c: New testcase. * testsuite/gcc.dg/octeon/ext-44.c: New testcase. * testsuite/gcc.dg/octeon/ext-45.c: New testcase. * testsuite/gcc.dg/octeon/ext-5.c: New testcase. * testsuite/gcc.dg/octeon/ext-6.c: New testcase. * testsuite/gcc.dg/octeon/ext-7.c: New testcase. * testsuite/gcc.dg/octeon/ext-8.c: New testcase. * testsuite/gcc.dg/octeon/ext-9.c: New testcase. * testsuite/gcc.dg/octeon/fdo-1.c: New testcase. * testsuite/gcc.dg/octeon/fini-1.cc: New testcase. * testsuite/gcc.dg/octeon/ins-1.c: New testcase. * testsuite/gcc.dg/octeon/ins-10.c: New testcase. * testsuite/gcc.dg/octeon/ins-11.c: New testcase. * testsuite/gcc.dg/octeon/ins-12.c: New testcase. * testsuite/gcc.dg/octeon/ins-13.c: New testcase. * testsuite/gcc.dg/octeon/ins-14.c: New testcase. * testsuite/gcc.dg/octeon/ins-15.c: New testcase. * testsuite/gcc.dg/octeon/ins-16.c: New testcase. * testsuite/gcc.dg/octeon/ins-17.c: New testcase. * testsuite/gcc.dg/octeon/ins-19.c: New testcase. * testsuite/gcc.dg/octeon/ins-2.c: New testcase. * testsuite/gcc.dg/octeon/ins-20.c: New testcase. * testsuite/gcc.dg/octeon/ins-21.c: New testcase. * testsuite/gcc.dg/octeon/ins-22.c: New testcase. * testsuite/gcc.dg/octeon/ins-23.c: New testcase. * testsuite/gcc.dg/octeon/ins-24.c: New testcase. * testsuite/gcc.dg/octeon/ins-25.c: New testcase. * testsuite/gcc.dg/octeon/ins-26.c: New testcase. * testsuite/gcc.dg/octeon/ins-27.c: New testcase. * testsuite/gcc.dg/octeon/ins-28.c: New testcase. * testsuite/gcc.dg/octeon/ins-3.c: New testcase. * testsuite/gcc.dg/octeon/ins-30.c: New testcase. * testsuite/gcc.dg/octeon/ins-31.c: New testcase. * testsuite/gcc.dg/octeon/ins-32.c: New testcase. * testsuite/gcc.dg/octeon/ins-33.c: New testcase. * testsuite/gcc.dg/octeon/ins-34.c: New testcase. * testsuite/gcc.dg/octeon/ins-35.c: New testcase. * testsuite/gcc.dg/octeon/ins-4.c: New testcase. * testsuite/gcc.dg/octeon/ins-5.c: New testcase. * testsuite/gcc.dg/octeon/ins-6.c: New testcase. * testsuite/gcc.dg/octeon/ins-7.c: New testcase. * testsuite/gcc.dg/octeon/ins-8.c: New testcase. * testsuite/gcc.dg/octeon/ins-9.c: New testcase. * testsuite/gcc.dg/octeon/inttypes-1.c: New testcase. * testsuite/gcc.dg/octeon/ivopts-1.c: New testcase. * testsuite/gcc.dg/octeon/lx-1.c: New testcase. * testsuite/gcc.dg/octeon/lx-2.c: New testcase. * testsuite/gcc.dg/octeon/madd-1.c: New testcase. * testsuite/gcc.dg/octeon/madd-2.c: New testcase. * testsuite/gcc.dg/octeon/madd-3.c: New testcase. * testsuite/gcc.dg/octeon/madd-4.c: New testcase. * testsuite/gcc.dg/octeon/madd-5.c: New testcase. * testsuite/gcc.dg/octeon/merge-const-bfstores-1.c: New testcase. * testsuite/gcc.dg/octeon/merge-const-bfstores-10.c: New testcase. * testsuite/gcc.dg/octeon/merge-const-bfstores-10a.c: New testcase. * testsuite/gcc.dg/octeon/merge-const-bfstores-10b.c: New testcase. * testsuite/gcc.dg/octeon/merge-const-bfstores-10c.c: New testcase. * testsuite/gcc.dg/octeon/merge-const-bfstores-11.cc: New testcase. * testsuite/gcc.dg/octeon/merge-const-bfstores-12.c: New testcase. * testsuite/gcc.dg/octeon/merge-const-bfstores-1a.c: New testcase. * testsuite/gcc.dg/octeon/merge-const-bfstores-2.c: New testcase. * testsuite/gcc.dg/octeon/merge-const-bfstores-3.c: New testcase. * testsuite/gcc.dg/octeon/merge-const-bfstores-4.c: New testcase. * testsuite/gcc.dg/octeon/merge-const-bfstores-5.c: New testcase. * testsuite/gcc.dg/octeon/merge-const-bfstores-6.c: New testcase. * testsuite/gcc.dg/octeon/merge-const-bfstores-7.c: New testcase. * testsuite/gcc.dg/octeon/merge-const-bfstores-7a.c: New testcase. * testsuite/gcc.dg/octeon/merge-const-bfstores-8.c: New testcase. * testsuite/gcc.dg/octeon/merge-const-bfstores-9.c: New testcase. * testsuite/gcc.dg/octeon/misc/merge-gcda-1.c: New testcase. * testsuite/gcc.dg/octeon/misc/merge-gcda-2.c: New testcase. * testsuite/gcc.dg/octeon/misc/merge-gcda.exp: New testcase. * testsuite/gcc.dg/octeon/misc/profopt.c: New testcase. * testsuite/gcc.dg/octeon/misc/rtld_next-a.c: New testcase. * testsuite/gcc.dg/octeon/misc/rtld_next-b.c: New testcase. * testsuite/gcc.dg/octeon/misc/rtld_next-m.c: New testcase. * testsuite/gcc.dg/octeon/misc/rtld_next-u.c: New testcase. * testsuite/gcc.dg/octeon/misc/rtld_next.exp: New testcase. * testsuite/gcc.dg/octeon/misc/serial-profopt.exp: New testcase. * testsuite/gcc.dg/octeon/mul-1.c: New testcase. * testsuite/gcc.dg/octeon/mul-2.c: New testcase. * testsuite/gcc.dg/octeon/mul-3.c: New testcase. * testsuite/gcc.dg/octeon/mul-4.c: New testcase. * testsuite/gcc.dg/octeon/open-1.c: New testcase. * testsuite/gcc.dg/octeon/range-1.c: New testcase. * testsuite/gcc.dg/octeon/return-1.c: New testcase. * testsuite/gcc.dg/octeon/sra-1.c: New testcase. * testsuite/gcc.dg/octeon/test-gprof-1.c: New testcase. * testsuite/gcc.dg/octeon/tramp-1.c: New testcase. * testsuite/gcc.dg/octeon/trunc-1.c: New testcase. * testsuite/gcc.dg/octeon/trunc-10.c: New testcase. * testsuite/gcc.dg/octeon/trunc-11.c: New testcase. * testsuite/gcc.dg/octeon/trunc-12.c: New testcase. * testsuite/gcc.dg/octeon/trunc-13.c: New testcase. * testsuite/gcc.dg/octeon/trunc-14.c: New testcase. * testsuite/gcc.dg/octeon/trunc-15.c: New testcase. * testsuite/gcc.dg/octeon/trunc-16.c: New testcase. * testsuite/gcc.dg/octeon/trunc-17.c: New testcase. * testsuite/gcc.dg/octeon/trunc-18.c: New testcase. * testsuite/gcc.dg/octeon/trunc-19.c: New testcase. * testsuite/gcc.dg/octeon/trunc-2.c: New testcase. * testsuite/gcc.dg/octeon/trunc-20.c: New testcase. * testsuite/gcc.dg/octeon/trunc-21.c: New testcase. * testsuite/gcc.dg/octeon/trunc-22.c: New testcase. * testsuite/gcc.dg/octeon/trunc-23.c: New testcase. * testsuite/gcc.dg/octeon/trunc-24.c: New testcase. * testsuite/gcc.dg/octeon/trunc-25.c: New testcase. * testsuite/gcc.dg/octeon/trunc-26.c: New testcase. * testsuite/gcc.dg/octeon/trunc-27.c: New testcase. * testsuite/gcc.dg/octeon/trunc-28.c: New testcase. * testsuite/gcc.dg/octeon/trunc-29.c: New testcase. * testsuite/gcc.dg/octeon/trunc-3.c: New testcase. * testsuite/gcc.dg/octeon/trunc-30.c: New testcase. * testsuite/gcc.dg/octeon/trunc-31.c: New testcase. * testsuite/gcc.dg/octeon/trunc-4.c: New testcase. * testsuite/gcc.dg/octeon/trunc-5.c: New testcase. * testsuite/gcc.dg/octeon/trunc-6.c: New testcase. * testsuite/gcc.dg/octeon/trunc-7.c: New testcase. * testsuite/gcc.dg/octeon/trunc-8.c: New testcase. * testsuite/gcc.dg/octeon/trunc-9.c: New testcase. 2012-07-24 Andrew Pinski Start of Bug #4220 * tree-ssa-sccvn.c (simplify_binary_expression): Add looked_up argument. Get the first operand full expression for PLUS, IOR, and AND expressions also. Try to simplify (type)a + CST if there is a + CST exists already when type is just a different signedness of the type of a. (simplify_unary_expression): Add looked_up argument. Try to simplify (type)(a+CST) if there exists a (type)a where the type is just a difference signedness of the type of a. (try_to_simplify): Add looked_up argument. Update calls to simplify_binary_expression and simplify_unary_expression. (visit_use): Update call to try_to_simplify. Set was_simplified to true if try_to_simplify's looked_up is true. * tree-ssa-sccvn.h (struct vn_ssa_aux): New field was_simplified. * tree-ssa-pre.c (eliminate): Do an insert when the VN said we should. 2012-07-24 Andrew Pinski Adam Nemet * tree-ssa-loop-ivopts.c (rewrite_use_address): Create an aligned type of the use type of the correct alignment. * testsuite/gcc.target/mips/unaligned-4.c: New testcase. * testsuite/gcc.target/mips/unaligned-3.c: New testcase. 2012-07-23 Andrew Pinski Bug #2022 * sched-deps.c (create_mem_store_deps): New function. (sched_analyze_1): Use create_mem_store_deps. (sched_analyze_2): For prefetches, cause a write memory barrior. 2012-07-23 Andrew Pinski * tree-ssa-loop-unswitch.c (tree_ssa_unswitch_loops): Look at all loop not just the inner most ones. (tree_unswitch_loop): Remove the assert about the loop being the inner most loop. * testsuite/gcc.dg/alias-10.c: Update testcase for the number of unswitching. 2012-07-23 Andrew Pinski * testsuite/gcc.dg/invalid-call-1.c: Fix testcase. 2012-07-23 Andrew Pinski * testsuite/gcc.dg/tree-ssa/phi-opt-pass-order.c: New testcase. 2012-07-20 Andrew Pinski Bug #380 * config/mips/mips.c (mips_expand_ext_as_unaligned_load): Handle unaligned loads of 16bits too. * testsuite/gcc.target/mips/unaligned-2.c: New testcase. 2012-07-20 Adam Nemet * testsuite/gcc.dg/octeon/test-backtrace.h: New header. 2012-07-19 Adam Nemet * testsuite/gcc.dg/octeon/README: New file about this directory. 2012-07-19 Adam Nemet * testsuite/gcc.dg/octeon/cvmx/octeon-cvmx.exp: New file. * testsuite/gcc.dg/octeon/cvmx/bt-1.c: New test. * testsuite/gcc.dg/octeon/cvmx/bt-2.c: New test. * testsuite/gcc.dg/octeon/cvmx/bt-3.c: New test. * testsuite/gcc.dg/octeon/cvmx/bt-4.c: New test. * testsuite/gcc.dg/octeon/cvmx/bt-5.c: New test. 2014-02-15 Manjunath Matti Ported the patch to support Octeon. 2012-07-19 Andrew Pinski Adam Nemet Chandrakala Chavva * config.gcc (mips64*-*-linux* | mipsisa64*-*-linux*): Handle mips64*-octeon-linux* as defaulting to n64. Also handle mips64*-octeon-linux* like mips64octeon*-*-linux*. (mipsisa64-octeon-elf*): New target. * config/mips/mips-protos.h (mips_cvmx_shared_decl_p): New prototype. (octeon_output_shared_variable): New prototype. (mips_output_aligned_bss): New prototype. * config/mips/mips.c (accept_var_decls_only): New function. (mips_attribute_table): Add cvmx_shared and cvmx_noshared. (mips_merge_decl_attributes): Warn about when cvmx_shared are different between the two decls. (mips_expand_ext_as_unaligned_load): Handle the ISA_HAS_UL_US case. (mips_expand_ins_as_unaligned_store): Likewise. (mips_cvmx_shared_decl_p): New function. (mips_in_small_data_p): Check for cvmx_shared. (mips_option_override): Error out if the target is octeon* and hardfloat was enabled. Enable k0 optimization for TLS for Octeon1. (octeon_select_section): New function. (octeon_unique_section): New function. (octeon_output_shared_variable): New function. * config/mips/mips.h (ISA_HAS_UL_US): New macro. * config/mips/mips.md (UNSPEC_UNALIGNED_LOAD, UNSPEC_UNALIGNED_STORE): New unspecs. (mov_l, mov_r, mov_l, mov_r): Disable if ISA_HAS_UL_US. (mov_u, mov_u): New patterns. (tls_get_tp_): Emit "move $v1,$k0" instead of "rdhwr $v1,$29" when TARGET_TLS_ACCEL is true. Set can_delay to yes when TARGET_TLS_ACCEL is true. * config/mips/mips.opt (mtls-accel): New option. (mocteon-useun): New option. (mshared-variables): New option. * defaults.h (GCOV_TARGET_SUFFIX_LENGTH): Define if not already defined. * config/mips/octeon-elf.h: New file. * config/mips/octeon-linux.h: New file. * config/mips/octeon.h: New file. * config/mips/t-octeon-elf: New file. * config/mips/t-octeon-linux: New file. * testsuite/gcc.dg/octeon/pipeline-1.c: New file. * testsuite/gcc.dg/octeon/pipeline-2.c: New file. * testsuite/gcc.dg/octeon/pop-1.c: New file. * testsuite/gcc.dg/octeon/pop-2.c: New file. * testsuite/gcc.dg/octeon/saa-1.c: New file. * testsuite/gcc.dg/octeon/saa-2.c: New file. * testsuite/gcc.dg/octeon/saa-3.c: New file. * testsuite/gcc.dg/octeon/saa-4.c: New file. * testsuite/gcc.dg/octeon/seq-1.c: New file. * testsuite/gcc.dg/octeon/seq-10.c: New file. * testsuite/gcc.dg/octeon/seq-11.c: New file. * testsuite/gcc.dg/octeon/seq-12.c: New file. * testsuite/gcc.dg/octeon/seq-13.c: New file. * testsuite/gcc.dg/octeon/seq-2.c: New file. * testsuite/gcc.dg/octeon/seq-3.c: New file. * testsuite/gcc.dg/octeon/seq-4.c: New file. * testsuite/gcc.dg/octeon/seq-5.c: New file. * testsuite/gcc.dg/octeon/seq-6.c: New file. * testsuite/gcc.dg/octeon/seq-7.c: New file. * testsuite/gcc.dg/octeon/seq-8.c: New file. * testsuite/gcc.dg/octeon/seq-9.c: New file. * testsuite/gcc.dg/octeon/siginfo-1.c: New file. * testsuite/gcc.dg/octeon/tls-1.c: New file. * testsuite/gcc.dg/octeon/tls-2.c: New file. * testsuite/gcc.dg/octeon/tls-3.c: New file. * testsuite/gcc.dg/octeon/tls-4.c: New file. * testsuite/gcc.dg/octeon/unaligned-1.c: New file. * testsuite/gcc.dg/octeon/unaligned-2.c: New file. * testsuite/gcc.dg/octeon/unaligned-3.c: New file. * testsuite/gcc.dg/octeon/unaligned-4.c: New file. * testsuite/gcc.dg/octeon/unaligned-5.c: New file. * testsuite/gcc.dg/octeon/unaligned-6.c: New file. * testsuite/gcc.dg/octeon/vrp-1.c: New file. * testsuite/gcc.dg/octeon/vrp-2.c: New file. * testsuite/gcc.dg/octeon/vrp-3.c: New file. * testsuite/gcc.dg/octeon/vrp-4.c: New file. * testsuite/gcc.dg/octeon/cvmx-shared-10.c: New file. * testsuite/gcc.dg/octeon/cvmx-shared-11.c: New file. * testsuite/gcc.dg/octeon/cvmx-shared-2.c: New file. * testsuite/gcc.dg/octeon/cvmx-shared-3.c: New file. * testsuite/gcc.dg/octeon/cvmx-shared-4.c: New file. * testsuite/gcc.dg/octeon/cvmx-shared-5.cc: New file. * testsuite/gcc.dg/octeon/cvmx-shared-6.c: New file. * testsuite/gcc.dg/octeon/cvmx-shared-7.c: New file. * testsuite/gcc.dg/octeon/cvmx-shared-8.c: New file. * testsuite/gcc.dg/octeon/cvmx-shared-9.c: New file. 2012-05-24 Andrew Pinski start of bug #4296 * config/mips/mips.c (mips_rtx_cost_data): Add movz cost. (mips_cpu_info_table): Set movz for Octeon to 2 and Octeon2 to 3. (mips_rtx_costs ): Return mips_cost->movz. 2012-07-18 Andrew Pinski * cfgloop.h (exact_loop_iterations_unbounded): Add Prototype. * cfgloopanal.c (exact_loop_iterations_unbounded): New function. 2012-07-16 Andrew Pinski * tree-pass.h (pass_profile_loop_bounds): New variable. * timevar.def (TV_PROFILE_LOOP_BOUNDS): New time var. * tree-ssa-loop.c (tree_profile_loop_bounds): New function. (gate_profile_loop_bounds): New function. (pass_profile_loop_bounds): New pass. * passes.c (init_optimization_passes): Add pass_profile_loop_bounds before pass_complete_unrolli. 2012-07-15 Andrew Pinski * testsuite/gcc.c-torture/unsorted/dump-noaddr.x (dump_compare): Use an absolute dump base instead of a relative one. 2012-07-13 Andrew Pinski Bug #4258 * config/mips/mips.c (mips_delegitimize_address): New function. (TARGET_DELEGITIMIZE_ADDRESS): Define. 2014-02-15 Manjunath Matti Ported the support for mfix-cn63xxp1 2012-07-13 Andrew Pinski Chandrakala Chavva * config/mips/mips.opt (mfix-cn63xxp1): New option. * config/mips/mips.h (ASM_SPEC): Add mfix-cn63xxp1. 2014-01-29 Andrew Pinski * opts.c (default_options_table): Enable unroll-loops at -O3 and above. 2014-01-27 Manjunath Matti Ported the patch by Andrew. 2012-07-13 Andrew Pinski Bug #4325 * tree-pass.h (*make_pass_merge_common_code) New declaration. * tree-ssa-merge-common-code.c: New file. * timevar.def (TV_TREE_SSA_MERGE_COMMON): New. * Makefile.in (OBJS): Add tree-ssa-merge-common-code.o. * passes.def (all_passes): Add pass_merge_common_code after the two fres and after the pre. 2013-11-19 Andrew Pinski * config/aarch64/aarch64.md (trap): Use #1000 instead of #0. 2013-11-18 Andrew Pinski * config/aarch64/aarch64.md (trap): New pattern.