Skip to content
This repository has been archived by the owner on Jul 3, 2024. It is now read-only.

Commit

Permalink
Merge pull request #484 from sifive/shrink-itim-benchmark
Browse files Browse the repository at this point in the history
Bump ldscript-generator to reduce ITIM ramrodata usage
  • Loading branch information
nategraff-sifive authored May 5, 2020
2 parents c037112 + 0a13740 commit 532331b
Show file tree
Hide file tree
Showing 38 changed files with 577 additions and 256 deletions.
21 changes: 14 additions & 7 deletions bsp/freedom-e310-arty/metal.default.lds
Original file line number Diff line number Diff line change
Expand Up @@ -23,6 +23,7 @@ PHDRS
tls PT_TLS;
ram PT_LOAD;
itim_init PT_LOAD;
text PT_LOAD;
}

SECTIONS
Expand Down Expand Up @@ -148,13 +149,6 @@ SECTIONS
KEEP (*(.metal.dtors .metal.dtors.*))
} >rom : rom

.text : {
*(.text.unlikely .text.unlikely.*)
*(.text.startup .text.startup.*)
*(.text .text.*)
*(.gnu.linkonce.t.*)
} >rom :rom

.rodata : {
*(.rdata)
*(.rodata .rodata.*)
Expand Down Expand Up @@ -186,6 +180,19 @@ SECTIONS
PROVIDE( metal_segment_itim_target_start = ADDR(.itim) );
PROVIDE( metal_segment_itim_target_end = ADDR(.itim) + SIZEOF(.itim) );

/* TEXT SECTION
*
* The following section contains the code of the program, excluding
* everything that's been allocated into the ITIM already
*/

.text : {
*(.text.unlikely .text.unlikely.*)
*(.text.startup .text.startup.*)
*(.text .text.*)
*(.gnu.linkonce.t.*)
} >rom :text

/* RAM SECTION
*
* The following sections contain data which is copied from read-only
Expand Down
21 changes: 14 additions & 7 deletions bsp/freedom-e310-arty/metal.freertos.lds
Original file line number Diff line number Diff line change
Expand Up @@ -26,6 +26,7 @@ PHDRS
tls PT_TLS;
ram PT_LOAD;
itim_init PT_LOAD;
text PT_LOAD;
}

SECTIONS
Expand Down Expand Up @@ -158,13 +159,6 @@ SECTIONS
KEEP (*(.metal.dtors .metal.dtors.*))
} >rom : rom

.text : {
*(.text.unlikely .text.unlikely.*)
*(.text.startup .text.startup.*)
*(.text .text.*)
*(.gnu.linkonce.t.*)
} >rom :rom

.rodata : {
*(.rdata)
*(.rodata .rodata.*)
Expand Down Expand Up @@ -197,6 +191,19 @@ SECTIONS
PROVIDE( metal_segment_itim_target_start = ADDR(.itim) );
PROVIDE( metal_segment_itim_target_end = ADDR(.itim) + SIZEOF(.itim) );

/* TEXT SECTION
*
* The following section contains the code of the program, excluding
* everything that's been allocated into the ITIM already
*/

.text : {
*(.text.unlikely .text.unlikely.*)
*(.text.startup .text.startup.*)
*(.text .text.*)
*(.gnu.linkonce.t.*)
} >rom :text

/* RAM SECTION
*
* The following sections contain data which is copied from read-only
Expand Down
21 changes: 14 additions & 7 deletions bsp/freedom-e310-arty/metal.ramrodata.lds
Original file line number Diff line number Diff line change
Expand Up @@ -27,6 +27,7 @@ PHDRS
tls PT_TLS;
ram PT_LOAD;
itim_init PT_LOAD;
text PT_LOAD;
}

SECTIONS
Expand Down Expand Up @@ -152,13 +153,6 @@ SECTIONS
KEEP (*(.metal.dtors .metal.dtors.*))
} >rom : rom

.text : {
*(.text.unlikely .text.unlikely.*)
*(.text.startup .text.startup.*)
*(.text .text.*)
*(.gnu.linkonce.t.*)
} >rom :rom


/* ITIM SECTION
*
Expand All @@ -178,6 +172,19 @@ SECTIONS
PROVIDE( metal_segment_itim_target_start = ADDR(.itim) );
PROVIDE( metal_segment_itim_target_end = ADDR(.itim) + SIZEOF(.itim) );

/* TEXT SECTION
*
* The following section contains the code of the program, excluding
* everything that's been allocated into the ITIM already
*/

.text : {
*(.text.unlikely .text.unlikely.*)
*(.text.startup .text.startup.*)
*(.text .text.*)
*(.gnu.linkonce.t.*)
} >rom :text

/* RAM SECTION
*
* The following sections contain data which is copied from read-only
Expand Down
21 changes: 14 additions & 7 deletions bsp/freedom-e310-arty/metal.scratchpad.lds
Original file line number Diff line number Diff line change
Expand Up @@ -24,6 +24,7 @@ PHDRS
tls PT_TLS;
ram PT_LOAD;
itim_init PT_LOAD;
text PT_LOAD;
}

SECTIONS
Expand Down Expand Up @@ -149,13 +150,6 @@ SECTIONS
KEEP (*(.metal.dtors .metal.dtors.*))
} >ram : rom

.text : {
*(.text.unlikely .text.unlikely.*)
*(.text.startup .text.startup.*)
*(.text .text.*)
*(.gnu.linkonce.t.*)
} >ram :rom

.rodata : {
*(.rdata)
*(.rodata .rodata.*)
Expand Down Expand Up @@ -187,6 +181,19 @@ SECTIONS
PROVIDE( metal_segment_itim_target_start = ADDR(.itim) );
PROVIDE( metal_segment_itim_target_end = ADDR(.itim) + SIZEOF(.itim) );

/* TEXT SECTION
*
* The following section contains the code of the program, excluding
* everything that's been allocated into the ITIM already
*/

.text : {
*(.text.unlikely .text.unlikely.*)
*(.text.startup .text.startup.*)
*(.text .text.*)
*(.gnu.linkonce.t.*)
} >ram :text

/* RAM SECTION
*
* The following sections contain data which is copied from read-only
Expand Down
21 changes: 14 additions & 7 deletions bsp/qemu-sifive-e31/metal.default.lds
Original file line number Diff line number Diff line change
Expand Up @@ -22,6 +22,7 @@ PHDRS
tls PT_TLS;
ram PT_LOAD;
itim_init PT_LOAD;
text PT_LOAD;
}

SECTIONS
Expand Down Expand Up @@ -145,13 +146,6 @@ SECTIONS
KEEP (*(.metal.dtors .metal.dtors.*))
} >rom : rom

.text : {
*(.text.unlikely .text.unlikely.*)
*(.text.startup .text.startup.*)
*(.text .text.*)
*(.gnu.linkonce.t.*)
} >rom :rom

.rodata : {
*(.rdata)
*(.rodata .rodata.*)
Expand Down Expand Up @@ -183,6 +177,19 @@ SECTIONS
PROVIDE( metal_segment_itim_target_start = ADDR(.itim) );
PROVIDE( metal_segment_itim_target_end = ADDR(.itim) + SIZEOF(.itim) );

/* TEXT SECTION
*
* The following section contains the code of the program, excluding
* everything that's been allocated into the ITIM already
*/

.text : {
*(.text.unlikely .text.unlikely.*)
*(.text.startup .text.startup.*)
*(.text .text.*)
*(.gnu.linkonce.t.*)
} >rom :text

/* RAM SECTION
*
* The following sections contain data which is copied from read-only
Expand Down
21 changes: 14 additions & 7 deletions bsp/qemu-sifive-e31/metal.freertos.lds
Original file line number Diff line number Diff line change
Expand Up @@ -25,6 +25,7 @@ PHDRS
tls PT_TLS;
ram PT_LOAD;
itim_init PT_LOAD;
text PT_LOAD;
}

SECTIONS
Expand Down Expand Up @@ -155,13 +156,6 @@ SECTIONS
KEEP (*(.metal.dtors .metal.dtors.*))
} >rom : rom

.text : {
*(.text.unlikely .text.unlikely.*)
*(.text.startup .text.startup.*)
*(.text .text.*)
*(.gnu.linkonce.t.*)
} >rom :rom

.rodata : {
*(.rdata)
*(.rodata .rodata.*)
Expand Down Expand Up @@ -194,6 +188,19 @@ SECTIONS
PROVIDE( metal_segment_itim_target_start = ADDR(.itim) );
PROVIDE( metal_segment_itim_target_end = ADDR(.itim) + SIZEOF(.itim) );

/* TEXT SECTION
*
* The following section contains the code of the program, excluding
* everything that's been allocated into the ITIM already
*/

.text : {
*(.text.unlikely .text.unlikely.*)
*(.text.startup .text.startup.*)
*(.text .text.*)
*(.gnu.linkonce.t.*)
} >rom :text

/* RAM SECTION
*
* The following sections contain data which is copied from read-only
Expand Down
21 changes: 14 additions & 7 deletions bsp/qemu-sifive-e31/metal.ramrodata.lds
Original file line number Diff line number Diff line change
Expand Up @@ -26,6 +26,7 @@ PHDRS
tls PT_TLS;
ram PT_LOAD;
itim_init PT_LOAD;
text PT_LOAD;
}

SECTIONS
Expand Down Expand Up @@ -149,13 +150,6 @@ SECTIONS
KEEP (*(.metal.dtors .metal.dtors.*))
} >rom : rom

.text : {
*(.text.unlikely .text.unlikely.*)
*(.text.startup .text.startup.*)
*(.text .text.*)
*(.gnu.linkonce.t.*)
} >rom :rom


/* ITIM SECTION
*
Expand All @@ -175,6 +169,19 @@ SECTIONS
PROVIDE( metal_segment_itim_target_start = ADDR(.itim) );
PROVIDE( metal_segment_itim_target_end = ADDR(.itim) + SIZEOF(.itim) );

/* TEXT SECTION
*
* The following section contains the code of the program, excluding
* everything that's been allocated into the ITIM already
*/

.text : {
*(.text.unlikely .text.unlikely.*)
*(.text.startup .text.startup.*)
*(.text .text.*)
*(.gnu.linkonce.t.*)
} >rom :text

/* RAM SECTION
*
* The following sections contain data which is copied from read-only
Expand Down
21 changes: 14 additions & 7 deletions bsp/qemu-sifive-e31/metal.scratchpad.lds
Original file line number Diff line number Diff line change
Expand Up @@ -23,6 +23,7 @@ PHDRS
tls PT_TLS;
ram PT_LOAD;
itim_init PT_LOAD;
text PT_LOAD;
}

SECTIONS
Expand Down Expand Up @@ -146,13 +147,6 @@ SECTIONS
KEEP (*(.metal.dtors .metal.dtors.*))
} >ram : rom

.text : {
*(.text.unlikely .text.unlikely.*)
*(.text.startup .text.startup.*)
*(.text .text.*)
*(.gnu.linkonce.t.*)
} >ram :rom

.rodata : {
*(.rdata)
*(.rodata .rodata.*)
Expand Down Expand Up @@ -184,6 +178,19 @@ SECTIONS
PROVIDE( metal_segment_itim_target_start = ADDR(.itim) );
PROVIDE( metal_segment_itim_target_end = ADDR(.itim) + SIZEOF(.itim) );

/* TEXT SECTION
*
* The following section contains the code of the program, excluding
* everything that's been allocated into the ITIM already
*/

.text : {
*(.text.unlikely .text.unlikely.*)
*(.text.startup .text.startup.*)
*(.text .text.*)
*(.gnu.linkonce.t.*)
} >ram :text

/* RAM SECTION
*
* The following sections contain data which is copied from read-only
Expand Down
21 changes: 14 additions & 7 deletions bsp/qemu-sifive-s51/metal.default.lds
Original file line number Diff line number Diff line change
Expand Up @@ -22,6 +22,7 @@ PHDRS
tls PT_TLS;
ram PT_LOAD;
itim_init PT_LOAD;
text PT_LOAD;
}

SECTIONS
Expand Down Expand Up @@ -145,13 +146,6 @@ SECTIONS
KEEP (*(.metal.dtors .metal.dtors.*))
} >rom : rom

.text : {
*(.text.unlikely .text.unlikely.*)
*(.text.startup .text.startup.*)
*(.text .text.*)
*(.gnu.linkonce.t.*)
} >rom :rom

.rodata : {
*(.rdata)
*(.rodata .rodata.*)
Expand Down Expand Up @@ -183,6 +177,19 @@ SECTIONS
PROVIDE( metal_segment_itim_target_start = ADDR(.itim) );
PROVIDE( metal_segment_itim_target_end = ADDR(.itim) + SIZEOF(.itim) );

/* TEXT SECTION
*
* The following section contains the code of the program, excluding
* everything that's been allocated into the ITIM already
*/

.text : {
*(.text.unlikely .text.unlikely.*)
*(.text.startup .text.startup.*)
*(.text .text.*)
*(.gnu.linkonce.t.*)
} >rom :text

/* RAM SECTION
*
* The following sections contain data which is copied from read-only
Expand Down
Loading

0 comments on commit 532331b

Please sign in to comment.