Closed Bug 237041 Opened 21 years ago Closed 17 years ago

compile options for improved minimo speed on arm.

Categories

(Firefox Build System :: General, defect)

x86
Linux
defect
Not set
normal

Tracking

(Not tracked)

RESOLVED INVALID
Future

People

(Reporter: chofmann, Unassigned)

References

Details

(Keywords: mobile)

Attachments

(1 file)

17.83 KB, application/x-zip-compressed
Details
Here are the options to try with GCC 3.3 when compiling for ARM target: -Os -finline-limit=1 -mno-apcs-frame -fno-schedule-insns -mno-thumb-iterwork -fno-optimize-sibling-calls -fomit-frame-pointer -fno-if-conversion -ffunction-sections -fno-thread-jumps -fno-force-mem -fno-hosted -fno-foce-addr -fno-expensive-optimizations -fno-inline-functions -fargument-noalias-global -fbranch-probabilities -fno-gcse -fno-rerun-cse-after-loop These options should be optimal for COMPILATION SPEED. ( IF you want to optimize for size, you should replace "-fno-gcse -fno-rerun-cse-after-loop" with "-fno-data-sections -fnew-ra". BUT the optimized set of options for compilation speed produces SMALLER code that "-Os" alone... ) I guess somebody should check that these options are safe. For example, -fargument-noalias-global seems suspect... let's optimize for speed and generate new performance and memory graphs to compare.
Blocks: 215636
adding cls in case he know anything about any of these options.
Sorry, I haven't played with any of those besides -Os. Maybe bryner has?
------- Additional Comment #4 From chris hofmann 2004-03-20 07:55 PST [reply] ------- Created an attachment (id=144405) mem use graph with these options ------- Additional Comment #5 From chris hofmann 2004-03-20 07:59 PST [reply] ------- comparison mem us graph from release 0.1. http://www.mozilla.org/projects/minimo/releases/arm/0.1/minimo-mem.gif some improvememt, but it is not quite apples to apples comparison since we might have made ground with other fixes between minimo 0.1 (mozilla 1.7 alpha) and 1.7b where this minimo snapshot came from.
Attached file data details
In the build that the data was collected against, I did not use the follow compiler options since they did _not_ produce a launchable build. -fno-foce-addr -mno-apcs-frame -mno-thumb-iterwork Here is the build that was used to collect this data: http://www.meer.net/~dougt/minimo_0.2-a1_arm.ipk
Target Milestone: --- → Future
OS: Windows XP → Linux
Assignee: dougt → nobody
this would be a great thing to have someone test again.
Keywords: mobile
Product: Minimo → Core
Do we really want to use all those "black magic" options? In particular -fargument-noalias-global will cause GCC to make assumptions which AFAIK violate the C/C++ language standards and -fnew-ra is considered broken by the GCC developers. Most of the time on ARM platforms we only use: -g -O2 -march=armv5t (generic for most of the platforms (armv5, V6...) or -g -O2 -march=armv6 for armv6 platforms like the N800 or more specifically -g -O2 -mcpu=arm1136jf-s -mfpu=vfp -mfloat-abi=softfp for arm11 platforms like the N800
i do not think we want to use any black magic unless it pays off. these options were given to us from an embedder a long time ago, and we created this bug to track them. Since we didn't have any arm/gcc experts, we didn't really know what to make of the options.
agreed, lets not do any black magic
Status: NEW → RESOLVED
Closed: 17 years ago
Resolution: --- → INVALID
Product: Core → Firefox Build System
You need to log in before you can comment on or make changes to this bug.

Attachment

General

Creator:
Created:
Updated:
Size: