aboutsummaryrefslogtreecommitdiff
path: root/lib/Transforms
AgeCommit message (Collapse)Author
2013-12-08legalize and, or, xorAlon Zakai
2013-12-08legalize shlAlon Zakai
2013-12-08fix typoAlon Zakai
2013-12-07unlink illegal instructions before deleting themAlon Zakai
2013-12-07details for icmpAlon Zakai
2013-12-07progress on icmpAlon Zakai
2013-12-07legalize icmpAlon Zakai
2013-12-07legalize phi nodesAlon Zakai
2013-12-07legalize i64 selectAlon Zakai
2013-12-07improve legalizer decision codeAlon Zakai
2013-12-07fix typosAlon Zakai
2013-12-07fix getHigh32 return typeAlon Zakai
2013-12-07fix i64Subtract callAlon Zakai
2013-12-07ret i64Alon Zakai
2013-12-07getHigh32/setHigh32Alon Zakai
2013-12-07i64 loadAlon Zakai
2013-12-07add other i64 helper funcsAlon Zakai
2013-12-06fix legalized binary operatorsAlon Zakai
2013-12-06cleanupAlon Zakai
2013-12-05zext and ashrAlon Zakai
2013-12-05i64 lshrAlon Zakai
2013-12-05fix errorAlon Zakai
2013-12-05I64DEV env varAlon Zakai
2013-12-05i64 trunc to i32Alon Zakai
2013-12-05i64 mulAlon Zakai
2013-12-05work on i64AddAlon Zakai
2013-12-05commentAlon Zakai
2013-12-05work towards legalizing i64 addAlon Zakai
2013-12-05refactor i64 legalization codeAlon Zakai
2013-12-05refactor legalizerAlon Zakai
2013-12-04cleanupAlon Zakai
2013-12-04legalize sexts to i64 from <= i32Alon Zakai
2013-12-04legalize i64 stores of constantsAlon Zakai
2013-12-04legalization infrastructureAlon Zakai
2013-12-04start to finalize legalized dataAlon Zakai
2013-12-04remove original illegal valuesAlon Zakai
2013-12-04start to legalize store i64Alon Zakai
2013-12-04begin to legalize i64 sextAlon Zakai
2013-12-04boilerplate for ExpandI64PassAlon Zakai
2013-11-29do not simplify varargs calls to jsargs emscripten intrinsics, that want ↵Alon Zakai
normal js args to be passed, and disable unneeded createExpandSmallArgumentsPass
2013-11-28do not run nacl atomics passes, we can leave them as-isAlon Zakai
2013-11-21do not expand tlsAlon Zakai
2013-11-21keep alignment infoAlon Zakai
2013-11-21align varargs stack writes to the proper 4-byte boundariesAlon Zakai
2013-11-21disable pnacl internalization of everything except for _start, as emscripten ↵Alon Zakai
supports arbitrary entry points
2013-11-15PNaCl: Change exception info format to distinguish catch-all/cleanup clausesMark Seaborn
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
2013-11-15Make integer promotion pass preserve debug infoDerek Schuff
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
2013-11-15Switch PromoteIntegers pass from clearing upper bits after converted operationsDerek Schuff
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
2013-10-29PNaCl: Add option to PNaClABISimplify for enabling the PNaClSjLjEH passMark Seaborn
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
2013-10-22Make sure flatten globals doesn't insert uses of globals that previously had ↵JF Bastien
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