aboutsummaryrefslogtreecommitdiff
path: root/lib/Transforms/NaCl
AgeCommit message (Collapse)Author
2014-03-28expand constantExprs for all illegal values, not just >=64bit, so that ↵Alon Zakai
things like nested i24 CEs are fixed up by promoteIntegers
2014-03-07fix the case where exceptions are lowered and we already had ↵Alon Zakai
getHigh/preInvoke/postInvoke defined in the module
2014-03-06Implement integer promotion for urem, udiv, srem, and sdivDan Gohman
The optimizer sometimes thinks it's beneficial to truncate all manner of i64 operators to narrower types, even when still wider than the platform's widest legal type.
2014-03-05Disable the ResolveAliases and GlobalCleanup passes.Dan Gohman
Also add a test for handling of global aliases.
2014-03-05Disable the LowerExpectIntrinsic pass.Dan Gohman
2014-03-05Don't run a pass to strip dead prototypes; just ignore them.Dan Gohman
Also, fix the code for supressing declarations for no-op intrinsics.
2014-03-05Clean up the handling of inline asm.Dan Gohman
Make inline asm a report_fatal_error instead of an assertion failure so that it's a little friendlier, and add a test to make sure llc -march=js rejects inline asm. Also disable the PNaCl inline asm("":::"memory") lowering pass. If people are using this, it's best that we diagnose it as it likely isn't portable. There are usually better alternatives.
2014-03-03Fix alignment of vararg buffer allocas.Dan Gohman
Since we do 8-byte loads for va_arg of double, make sure the vararg buffer alloca is 8-byte aligned.
2014-02-28Move ExpandI64 into lib/Target/JSBackend.Dan Gohman
2014-02-28Use more LLVM-idiomatic error reporting.Dan Gohman
2014-02-28Implement llvm.flt.rounds and disable the createRewriteLLVMIntrinsicsPass pass.Dan Gohman
2014-02-26Merge pull request #23 from sunfishcode/incomingAlon Zakai
Incoming
2014-02-26NoExitRuntimeAlon Zakai
2014-02-25Disable the RewritePNaClLibraryCalls pass, which isn't needed for Emscripten.Dan Gohman
2014-02-25Re-introduce ConstantExpr expansion for constants containing illegal types.Dan Gohman
2014-02-25Support GEP and ConstantExprs directly in the JSBackend.Dan Gohman
This patch also lays the groundwork for the single-use instruction trick to reduce the number of temporary variables.
2014-02-25workaround for nativeclient issue 3798, wrong alignment on copy of a byval ↵Alon Zakai
struct argument
2014-02-20fix attribute copying in function recreation code in ExpandI64 passAlon Zakai
2014-02-14typo fixAlon Zakai
2014-02-14fix ashr when high bits are exactly 0Alon Zakai
2014-02-14Preserve alignment information when promoting integer loads and stores.Dan Gohman
2014-02-14Preserve alignment information when splitting loads and stores.Dan Gohman
2014-02-14Disable two PNaCl passes which the JSBackend no longer needs.Dan Gohman
2014-02-13erase more carefully in setjmp loweringAlon Zakai
2014-02-13Merge pull request #13 from sunfishcode/incomingAlon Zakai
Emscripten doesn't need to legalize pointers.
2014-02-13don't do 32-bit shifts on 32-bit values, as it is undefined behaviorAlon Zakai
2014-02-13Emscripten doesn't need to legalize pointers.Dan Gohman
2014-02-13handle ashr on >64 bitsAlon Zakai
2014-02-13Don't leave behind unreachable blocks with illegal instructions.Dan Gohman
2014-02-12Revamp ExpandI64.Dan Gohman
By using a reverse-postorder traversal of the basic blocks, we can perform this transform in a single pass. This eliminates the need for tricky coordination between the passes.
2014-02-12Generalize PromoteIntegers to handle arbitrary bit widths.Dan Gohman
2014-02-12Disable an unnecessary optimization pass.Dan Gohman
2014-02-12Use more LLVM-idiomatic debug and error facilities.Dan Gohman
2014-02-12optimize reg/mem stuff around setjmp loweringAlon Zakai
2014-02-12do reg2mem/mem2reg around the setjmp pass, to ensure our cfg changes do not ↵Alon Zakai
break module validation through altering dominances
2014-02-05fix a bug in LowerEmSetjmp, and improve error reportingAlon Zakai
2014-02-03allow only one of setjmp|longjmp to be presentAlon Zakai
2014-02-02support llvm.usedAlon Zakai
2014-02-02exceptions whitelist option, for emscripten EXCEPTION_CATCHING_WHITELISTAlon Zakai
2014-02-02generalize ExpandWithOverflow to handle completely nonconstant additionsAlon Zakai
2014-01-30suppress warnings on default nacl globalsAlon Zakai
2014-01-30assume worst-case alignment in PromoteIntegers, as we actually break on ↵Alon Zakai
unaligned operations
2014-01-29remove incorrect warning (ExpandI64 is a new pass of ours) and fix a ↵Alon Zakai
compilation warning
2014-01-29generalize and fix select legalization codeAlon Zakai
2014-01-29fix call legalization bugAlon Zakai
2014-01-29legalize phis >64 bitsAlon Zakai
2014-01-29handle >64bit trunc and zextAlon Zakai
2014-01-29legalize >64bit shifts of non-32-multiple amountsAlon Zakai
2014-01-29fix store on >64 bitsAlon Zakai
2014-01-29handle constants of >64 bits in legalizerAlon Zakai