Skip to content
This repository has been archived by the owner on Dec 9, 2018. It is now read-only.

Feature/o3opt -O3 : 44 MB -> 37 MB #28

Closed
wants to merge 3 commits into from

Conversation

emnh
Copy link
Contributor

@emnh emnh commented Jan 30, 2015

Consistently use -Oz -O3 optimization across all stages of compilation: configure, make and link. This reduces vim.js from 44MB to 37MB (with multibyte).

This patch applies after the other 2.

@emnh emnh changed the title Feature/o3opt Feature/o3opt -O3 : 44 MB -> 37 MB Jan 30, 2015
@emnh
Copy link
Contributor Author

emnh commented Jan 31, 2015

Adding --llvm-lto 1 saves additional 1 MB and seems to work, but emscripten says it has known issues so I left it out.

emnh added 3 commits January 31, 2015 11:42
Increased vim.js compiled size from 25MB to 44MB.
It is disabled by default.
Uses builtin emscripten UTF8 functions.
…d) on Chrome. Also tested on Firefox and IE.
…n: configure, make and link. This reduces vim.js from 44MB to 37MB (with multibyte).
var MAX_UTF8_BYTES = 6;
var chars = new Uint8Array(MAX_UTF8_BYTES + 1); // null-terminated
var charLen = stringToUTF8Array(String.fromCharCode(charCode), chars, 0, MAX_UTF8_BYTES);
if (charLen == 1) {
Copy link
Owner

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Why is this if clause useful?

@coolwanglu
Copy link
Owner

Commits in #27 are also included here, would you separate the commits or close #27?

CPP="gcc -E" \
CPPFLAGS="$OPTZ -DFEAT_GUI_WEB" \
CFLAGS="$OPTZ" \
CPP="emcc -E" \
Copy link
Owner

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I remember that emcc -E does not work well. Did you try this on a fresh clone of vim.js?

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Yes. I think it worked. But for emterpreter I had to use emscripten 1.29 for the configure step and the latest version for make and link.

Copy link
Owner

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

In that case, I think it's better to use gcc here.

@emnh
Copy link
Contributor Author

emnh commented May 12, 2016

Closing this since #45 now includes it.

@emnh emnh closed this May 12, 2016
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants