Age | Commit message (Collapse) | Author |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
supports arbitrary entry points
|
|
|
|
Write out all of PNaCl bitcode headers using a single interface
function.
BUG= https://code.google.com/p/nativeclient/issues/detail?id=3720
R=jvoung@chromium.org
Review URL: https://codereview.chromium.org/61753017
|
|
As it turns out Rietveld isn't smart enough to detect that the
configured origin URL is different from the origin URL of the checkout,
it just blindly changes the pushinsteadof URL. This means there's no
way to make it play nicely with clients with different origin URLs, so
rather than force everyone to change their URLs to the new one we'll just
remove the config, which will keep it from breaking people.
TBR=kschimpf@google.com
BUG=none
Review URL: https://codereview.chromium.org/81343002
|
|
chromium.googlesource.com
This should prevent git cl from mangling git's pushinsteadof config
on checkouts cloned by toolchain_build.py. It should also cause git cl
to update everyone's checkouts to the new origin URL.
TBR=kschimpf@google.com
BUG=none
Review URL: https://codereview.chromium.org/77723014
|
|
The code previously was very inconsisted in modeling the number of
bits needed for type ids within abbreviations. Frequently, the
number of bits used was based on the total number of types. This
is a bad choice in that this includes all function types, even though
most cases do not use these types. This patch makes the selection
more consistent.
Also removing TYPE_CODE_ARRAY, since it is not allowed.
BUG= https://code.google.com/p/nativeclient/issues/detail?id=3720
R=jvoung@chromium.org
Review URL: https://codereview.chromium.org/68503018
|
|
Define comparison of bitcode abbreviations so that we can add bitcode
abbreviations to collections.
BUG= https://code.google.com/p/nativeclient/issues/detail?id=3720
|
|
For now benchmarks reading/parsing/LLVM IR forming from PNaCl bitcode
BUG=None
R=stichnot@chromium.org
Review URL: https://codereview.chromium.org/76973002
|
|
This was kept in upstream LLVM for backwards compatibiilty
with version 0 bitcode, but PNaCl only accepts version 1
bitcode, so UseRelativeID is always true.
This reduces the number of branches taken while llvm-dis'ing
the Ogre SampleBrowser from 2,680,184,988 branches to
2,670,798,955 branches. A 2.5% difference in wall-clock
time...
BUG=none
trybots:
http://chromegw.corp.google.com/i/tryserver.nacl/builders/nacl-toolchain-linux-pnacl-x86_32/builds/939
http://chromegw.corp.google.com/i/tryserver.nacl/builders/nacl-toolchain-linux-pnacl-x86_64/builds/991
http://chromegw.corp.google.com/i/tryserver.nacl/builders/nacl-toolchain-mac-pnacl-x86_32/builds/933
R=mseaborn@chromium.org
Review URL: https://codereview.chromium.org/77023007
|
|
The initial version of ExceptionInfoWriter.cpp encodes a landingpad's
"cleanup" clause the same as "catch i8* null" (a catch-all).
But it turns out we do want to distinguish these two: If an uncaught
exception occurs, we don't want the runtime to run C++ destructors
(cleanups), because this involves unwinding the stack to jump to
landingpads, which loses the context of where the uncaught exception
was thrown from, which is unhelpful for debugging. (The C++ standard
says it's optional whether destructors are run when an uncaught
exception occurs.)
So, change the encoding as follows:
* Use 0 as the ID for "cleanup" clauses.
* Add 1 to the IDs of types and "catch" clauses. (Adding 1 to both
seems neater than just one of them.)
* This means we can use 0 for the terminator of filter lists instead
of -1, which seems a little neater.
This requires a corresponding change to eh_pnacl.cc in libsupc++.
BUG=https://code.google.com/p/nativeclient/issues/detail?id=3696
TEST=NaCl's EH tests with libsupc++ change applied
Review URL: https://codereview.chromium.org/69923008
|
|
Just copy the debug info from the original instructions to newly-created
instructions.
R=mseaborn@chromium.org
BUG=none
Review URL: https://codereview.chromium.org/60353015
|
|
that may affect them, to clearing before operations that may be affected
This is just a cleanup that doesn't have any significant performance or
functionality impact, but I thought it might make fixing bug 3714 a bit
simpler.
R=mseaborn@chromium.org
BUG= https://code.google.com/p/nativeclient/issues/detail?id=3714
Review URL: https://codereview.chromium.org/59533011
|
|
Some users are reporting Mac assertion errors while linking:
Assertion failed: (false && "Could not query current working directory.").
Add a perror() call to see what errno is when this fails.
BUG=none
R=dschuff@chromium.org
Review URL: https://codereview.chromium.org/66653003
|
|
Factors out bitcode parser from pnacl-bcanalyzer, so that it can also
be used for PNaCl bitcode to bitcode rewriters.
BUG= https://code.google.com/p/nativeclient/issues/detail?id=3720
R=jvoung@chromium.org
Review URL: https://codereview.chromium.org/48623003
|
|
When built as nexe, llc is configured and built for one arch only.
Variables FlagSfiData, FlagSfiLoad, FlagSfiStore, FlagSfiStack, and
FlagSfiBranch have to availabe for MIPS as well, so this change moves
them from ARM-only code to common code.
BUG= building pnacl-llc.nexe for MIPS fails
TEST= build sandboxed tools for MIPS
R=mseaborn@chromium.org
Review URL: https://codereview.chromium.org/46193002
|
|
Making this an 'enable' option (rather than using the pass name,
"-pnacl-sjlj-eh") will allow us to reorder the passes within
PNaClABISimplify.cpp later without having to change pnacl-ld.py (which
lives outside the pnacl-llvm repo).
It also means that the option can turn off LowerInvoke, which might
reduce the link time a little.
BUG=https://code.google.com/p/nativeclient/issues/detail?id=3696
TEST=tested with PNaCl-side plumbing in pnacl-ld.py etc.
Review URL: https://codereview.chromium.org/33743010
|
|
BUG=None
R=dschuff@chromium.org
Review URL: https://codereview.chromium.org/40843002
|
|
We are using our own bitcode reader now, and no longer need this.
R=jvoung@chromium.org, kschimpf@google.com
BUG=cleanup
Review URL: https://codereview.chromium.org/32943005
|
|
no uses.
This was the deeper cause of the issues I fixed in https://codereview.chromium.org/33233002/ and is therefore a better fix. (The problem was that StripDeadPrototypes was not stripping a variable that was actually dead because the bitcast constexpr inserted by FlattenGlobals referred to it.) I reverted most of that CL's changes, though not the comment and test cleanup.
R=dschuff@chromium.org
TEST= pnacl-clang++ pnacl/git/libcxx/test/input.output/iostream.objects/narrow.stream.objects/clog.pass.cpp -stdlib=libc++
Review URL: https://codereview.chromium.org/34843003
|
|
libc++'s iostream values are extern, and never actually used in the headers (unlike libstdc++'s) which means that including iostream and doing something like (void)std::clog used to leave a global external ostream object declaration without a definition, which cause PNaCl's module ABI verifier to fail ('has no initializer' and 'is not a valid external symbol').
R=dschuff@chromium.org
BUG= http://code.google.com/p/nativeclient/issues/detail?id=3623
TEST= globalcleanup.ll
Review URL: https://codereview.chromium.org/33233002
|
|
setjmp()+longjmp()
There are two parts to this:
* PNaClSjLjEH.cpp expands out the "invoke", "landingpad" and "resume"
instructions, modifying the control flow to use setjmp().
* ExceptionInfoWriter.cpp lowers landingpads' clause lists to data
that PNaCl's C++ runtime library will interpret. This part will be
reused when we drop the SjLj part and create a stable ABI for
zero-cost EH.
This pass isn't enabled in PNaClABISimplify yet: I'll do that in a
separate change.
BUG=https://code.google.com/p/nativeclient/issues/detail?id=3696
TEST=*.ll tests (also tested end-to-end: plumbing for this will follow later)
Review URL: https://codereview.chromium.org/24777002
|