- Feb 16, 2018
-
-
Andrew Waterman authored
-
- Nov 08, 2017
-
-
palmer authored
Without this we aren't getting proper memcpy inlining on RISC-V systems, which is particularly disastrous for Dhrystone performance on RV32IM systems. gcc/ChangeLog 2017-11-07 Andrew Waterman <andrew@sifive.com> * config/riscv/riscv-protos.h (riscv_hard_regno_nregs): New prototype. (riscv_expand_block_move): Likewise. gcc/config/riscv/riscv.h (MOVE_RATIO): Tune cost to movmemsi implementation. (RISCV_MAX_MOVE_BYTES_PER_LOOP_ITER): New define. (RISCV_MAX_MOVE_BYTES_STRAIGHT): New define. gcc/config/riscv/riscv.c (riscv_block_move_straight): New function. (riscv_adjust_block_mem): Likewise. (riscv_block_move_loop): Likewise. (riscv_expand_block_move): Likewise. gcc/config/riscv/riscv.md (movmemsi): New pattern. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@254501 138bc75d-0d04-0410-961f-82ee72b054a4 -
palmer authored
Use no suffix at all in the musl dynamic linker name for hard float ABI. Use -sf and -sp suffixes in musl dynamic linker name for soft float and single precision ABIs. The following table outlines the musl interpreter names for the RISC-V ABI names. musl interpreter | RISC-V ABI ----------------------- | ------------- ld-musl-riscv32.so.1 | riscv32-ilp32d ld-musl-riscv64.so.1 | riscv64-lp64d ld-musl-riscv32-sf.so.1 | riscv32-ilp32 ld-musl-riscv64-sf.so.1 | riscv64-lp64 ld-musl-riscv32-sp.so.1 | riscv32-ilp32f ld-musl-riscv64-sp.so.1 | riscv64-lp64f gcc/ChangeLog 2017-11-06 Michael Clark <michaeljclark@mac.com> * config/riscv/linux.h (MUSL_ABI_SUFFIX): New define. (MUSL_DYNAMIC_LINKER): Likewise. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@254500 138bc75d-0d04-0410-961f-82ee72b054a4
-
- Nov 05, 2017
-
-
palmer authored
This changes makes GCC asm output use instruction names that are consistent with the RISC-V ISA manual. The assembler accepts immediate-operand instructions without the "i" suffix, so this all worked before, it's just a bit cleaner to match the ISA manual more closely. gcc/ChangeLog 2017-10-03 Michael Clark <michaeljclark@mac.com> * config/riscv/riscv.c (riscv_print_operand): Add a 'i' format. config/riscv/riscv.md (addsi3): Use 'i' for immediates. (adddi3): Likewise. (*addsi3_extended): Likewise. (*addsi3_extended2): Likewise. (<optab>si3): Likewise. (<optab>di3): Likewise. (<optab><mode>3): Likewise. (<*optabe>si3_internal): Likewise. (zero_extendqi<SUPERQI:mode>2): Likewise. (*add<mode>hi3): Likewise. (*xor<mode>hi3): Likewise. (<optab>di3): Likewise. (*<optab>si3_extend): Likewise. (*sge<u>_<X:mode><GPR:mode>): Likewise. (*slt<u>_<X:mode><GPR:mode>): Likewise. (*sle<u>_<X:mode><GPR:mode>): Likewise. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@254418 138bc75d-0d04-0410-961f-82ee72b054a4 -
palmer authored
2017-11-04 Andrew Waterman <andrew@sifive.com> * config/riscv/riscv.c (riscv_option_override): Conditionally set TARGET_STRICT_ALIGN based upon -mtune argument. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@254417 138bc75d-0d04-0410-961f-82ee72b054a4
-
palmer authored
When implementing the RISC-V port, I took the name of this macro at face value. It appears we were mistaken in what this means, here's a quote from the SPARC port that better describes what SLOW_BYTE_ACCESS does /* Nonzero if access to memory by bytes is slow and undesirable. For RISC chips, it means that access to memory by bytes is no better than access by words when possible, so grab a whole word and maybe make use of that. */ I've added the comment to our port as well. See https://gcc.gnu.org/ml/gcc/2017-08/msg00202.html for more discussion. Thanks to Michael Clark and Andrew Pinski for the help! gcc/ChangeLog 2017-11-04 Andrew Waterman <andrew@sifive.com> * config/riscv/riscv.h (SLOW_BYTE_ACCESS): Change to 1. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@254416 138bc75d-0d04-0410-961f-82ee72b054a4
-
- Nov 03, 2017
-
-
palmer authored
GCC may generate non-legitimate address due to we allow some load/store with non-legitimate address in pic.md. gcc/ChangeLog 2017-11-03 Kito Cheng <kito.cheng@gmail.com> * config/riscv/riscv.c (riscv_legitimize_move): Handle non-legitimate address. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@254376 138bc75d-0d04-0410-961f-82ee72b054a4
-
- Nov 02, 2017
-
-
palmer authored
gcc/ChangeLog 2017-11-01 Palmer Dabbelt <palmer@dabbelt.com> * doc/invoke.texi (RISC-V Options): Use "@minus{}2 GB", not "-2 GB". git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@254331 138bc75d-0d04-0410-961f-82ee72b054a4 -
palmer authored
This documentation is patterned off the aarch64 -mcmodel documentation. gcc/ChangeLog: 2017-11-01 Palmer Dabbelt <palmer@dabbelt.com> * doc/invoke.texi (RISC-V Options): Explicitly name the medlow and medany code models, and describe what they do. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@254321 138bc75d-0d04-0410-961f-82ee72b054a4
-
- Oct 27, 2017
-
-
palmer authored
The documentation for the "-mabi" argument on RISC-V was incorrect. We chose to treat this as a documentation bug rather than a code bug, and to make the documentation match what GCC currently does. In the process, I also improved the documentation a bit. Thanks to Alex Bradbury for finding the bug! PR target/82717: https://gcc.gnu.org/bugzilla/show_bug.cgi?id=82717 gcc/ChangeLog 2017-10-27 Palmer Dabbelt <palmer@dabbelt.com> PR target/82717 * doc/invoke.texi (RISC-V) <-mabi>: Correct and improve. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@254153 138bc75d-0d04-0410-961f-82ee72b054a4
-
- Oct 26, 2017
-
-
palmer authored
Loads on RISC-V are sign-extending by default, but we weren't telling GCC this in our PIC load patterns. This corrects the problem, and adds a zero-extending pattern as well. gcc/ChangeLog 2017-10-25 Palmer Dabbelt <palmer@dabbelt.com> * config/riscv/riscv.md (ZERO_EXTEND_LOAD): Define. * config/riscv/pic.md (local_pic_load): Rename to local_pic_load_s, mark as a sign-extending load. (local_pic_load_u): Define. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@254092 138bc75d-0d04-0410-961f-82ee72b054a4
-
- Aug 25, 2017
-
-
palmer authored
The RISC-V user ISA permits misaligned accesses, but they may trap and be emulated. That emulation software needs to be compiled assuming strict alignment. Even when strict alignment is not required, set SLOW_UNALIGNED_ACCESS based upon -mtune to avoid a performance pitfall. gcc/ChangeLog: 2017-05-04 Andrew Waterman <andrew@sifive.com> * config/riscv/riscv.opt (mstrict-align): New option. * config/riscv/riscv.h (STRICT_ALIGNMENT): Use it. Update comment. (SLOW_UNALIGNED_ACCESS): Define. (riscv_slow_unaligned_access): Declare. * config/riscv/riscv.c (riscv_tune_info): Add slow_unaligned_access field. (riscv_slow_unaligned_access): New variable. (rocket_tune_info): Set slow_unaligned_access to true. (optimize_size_tune_info): Set slow_unaligned_access to false. (riscv_cpu_info_table): Add entry for optimize_size_tune_info. (riscv_valid_lo_sum_p): Use TARGET_STRICT_ALIGN. (riscv_option_override): Set riscv_slow_unaligned_access. * doc/invoke.texi: Add -mstrict-align to RISC-V. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@247659 138bc75d-0d04-0410-961f-82ee72b054a4 -
palmer authored
This contains only whitespace changes. gcc/ChangeLog 2017-05-04 Kito Cheng <kito.cheng@gmail.com> * config/riscv/riscv.md: Unify indentation. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@247658 138bc75d-0d04-0410-961f-82ee72b054a4
-
- Aug 14, 2017
-
-
rguenth authored
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/branches/gcc-7-branch@251081 138bc75d-0d04-0410-961f-82ee72b054a4
-
gccadmin authored
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/branches/gcc-7-branch@251079 138bc75d-0d04-0410-961f-82ee72b054a4
-
- Aug 13, 2017
-
-
gccadmin authored
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/branches/gcc-7-branch@251071 138bc75d-0d04-0410-961f-82ee72b054a4
-
- Aug 12, 2017
-
-
gccadmin authored
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/branches/gcc-7-branch@251063 138bc75d-0d04-0410-961f-82ee72b054a4
-
- Aug 11, 2017
-
-
gccadmin authored
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/branches/gcc-7-branch@251044 138bc75d-0d04-0410-961f-82ee72b054a4
-
- Aug 10, 2017
-
-
gccadmin authored
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/branches/gcc-7-branch@251016 138bc75d-0d04-0410-961f-82ee72b054a4
-
jason authored
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/branches/gcc-7-branch@251002 138bc75d-0d04-0410-961f-82ee72b054a4
-
jason authored
* pt.c (tsubst_decl) [VAR_DECL]: Avoid clobbering auto. (tsubst_copy) [VAR_DECL]: Handle auto. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/branches/gcc-7-branch@251001 138bc75d-0d04-0410-961f-82ee72b054a4
-
jason authored
* method.c (walk_field_subobs) Consider member initializers (NSDMIs) when deducing an inheriting constructor. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/branches/gcc-7-branch@251000 138bc75d-0d04-0410-961f-82ee72b054a4
-
- Aug 09, 2017
-
-
gccadmin authored
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/branches/gcc-7-branch@250982 138bc75d-0d04-0410-961f-82ee72b054a4
-
- Aug 08, 2017
-
-
rguenth authored
PR middle-end/81766 * function.c (thread_prologue_and_epilogue_insns): Restore behavior of always calling find_many_sub_basic_blocks on the inserted prologue. * gcc.target/i386/pr81766.c: New testcase. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/branches/gcc-7-branch@250958 138bc75d-0d04-0410-961f-82ee72b054a4
-
gccadmin authored
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/branches/gcc-7-branch@250939 138bc75d-0d04-0410-961f-82ee72b054a4
-
- Aug 07, 2017
-
-
jsm28 authored
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/branches/gcc-7-branch@250922 138bc75d-0d04-0410-961f-82ee72b054a4
-
gccadmin authored
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/branches/gcc-7-branch@250907 138bc75d-0d04-0410-961f-82ee72b054a4
-
- Aug 06, 2017
-
-
gccadmin authored
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/branches/gcc-7-branch@250893 138bc75d-0d04-0410-961f-82ee72b054a4
-
- Aug 05, 2017
-
-
gccadmin authored
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/branches/gcc-7-branch@250888 138bc75d-0d04-0410-961f-82ee72b054a4
-
jsm28 authored
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/branches/gcc-7-branch@250884 138bc75d-0d04-0410-961f-82ee72b054a4
-
- Aug 04, 2017
-
-
ian authored
libgo: change mksigtab to recognize glibc 2.26 NSIG expression Fixes golang/go#21147 Fixes GCC PR 81617 Reviewed-on: https://go-review.googlesource.com/52611 git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/branches/gcc-7-branch@250872 138bc75d-0d04-0410-961f-82ee72b054a4 -
gccadmin authored
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/branches/gcc-7-branch@250863 138bc75d-0d04-0410-961f-82ee72b054a4
-
- Aug 03, 2017
-
-
gccadmin authored
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/branches/gcc-7-branch@250840 138bc75d-0d04-0410-961f-82ee72b054a4
-
ian authored
When finalizing the methods of a named struct type, we used to finalize all the field types first. That can fail if the field types refer indirectly to the named type. Change it to just finalize the embedded field types first, and the rest of the fields later. Fixes golang/go#21253 Reviewed-on: https://go-review.googlesource.com/52570 git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/branches/gcc-7-branch@250833 138bc75d-0d04-0410-961f-82ee72b054a4
-
- Aug 02, 2017
-
-
uros authored
test "no-3dnowa" target attribute. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/branches/gcc-7-branch@250827 138bc75d-0d04-0410-961f-82ee72b054a4
-
jakub authored
PR tree-optimization/81588 * gcc.dg/tree-ssa/pr81588.c: Use -mbranch-cost=2 where possible, don't run the test on branch-cost=1 targets. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/branches/gcc-7-branch@250819 138bc75d-0d04-0410-961f-82ee72b054a4
-
jakub authored
* function.c (thread_prologue_and_epilogue_insns): Determine blocks for find_many_sub_basic_blocks bitmap by looking up BLOCK_FOR_INSN of first NONDEBUG_INSN_P in each of the split_prologue_seq and prologue_seq sequences - if any. * gcc.dg/pr79499.c: New test. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/branches/gcc-7-branch@250815 138bc75d-0d04-0410-961f-82ee72b054a4
-
gccadmin authored
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/branches/gcc-7-branch@250809 138bc75d-0d04-0410-961f-82ee72b054a4
-
jsm28 authored
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/branches/gcc-7-branch@250806 138bc75d-0d04-0410-961f-82ee72b054a4
-
uros authored
* config/i386/i386.c (ix86_print_operand_address_as): For -masm=intel print "ds:" only for immediates in generic address space. testsuite/ChangeLog: PR target/81641 * gcc.target/i386/pr81641.c: New test. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/branches/gcc-7-branch@250801 138bc75d-0d04-0410-961f-82ee72b054a4
-