aboutsummaryrefslogtreecommitdiff
path: root/lib
AgeCommit message (Collapse)Author
2014-03-02tolerate phis that refer to values from unreachable blocksAlon Zakai
2014-02-28Use range metadata instead of introducing selects.Dan Gohman
When GlobalOpt has determined that a GlobalVariable only ever has two values, it would convert the GlobalVariable to a boolean, and introduce SelectInsts at every load, to choose between the two possible values. These SelectInsts introduce overhead and other unpleasantness. This patch makes GlobalOpt just add range metadata to loads from such GlobalVariables instead. This enables the same main optimization (as seen in test/Transforms/GlobalOpt/integer-bool.ll), without introducing selects. The main downside is that it doesn't get the memory savings of shrinking such GlobalVariables, but this is expected to be negligible.
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-28fix check on whether a global is external; fixes issue #24Alon Zakai
2014-02-28use use_emptyAlon Zakai
2014-02-27emit assigns only for variables actually usedAlon Zakai
2014-02-26Merge pull request #23 from sunfishcode/incomingAlon Zakai
Incoming
2014-02-26NoExitRuntimeAlon Zakai
2014-02-25properly handle align 0 on memcpy and memset, warning if asked forAlon Zakai
2014-02-25Disable the RewritePNaClLibraryCalls pass, which isn't needed for Emscripten.Dan Gohman
2014-02-25Fix handling of ConstantExpr Selects.Dan Gohman
2014-02-25comment on technically incorrect handling of alignment 0 in memcpy and memsetAlon Zakai
2014-02-25Re-introduce ConstantExpr expansion for constants containing illegal types.Dan Gohman
2014-02-25Eliminate a few more temporary std::strings.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-25Introduce the asmjs-unknown-emscripten target triple.Dan Gohman
2014-02-25Minor code simplifications.Dan Gohman
2014-02-25workaround for nativeclient issue 3798, wrong alignment on copy of a byval ↵Alon Zakai
struct argument
2014-02-20indirectbr supportAlon Zakai
2014-02-20fix attribute copying in function recreation code in ExpandI64 passAlon Zakai
2014-02-19tolerate arbitrary illegal chars in global names, lower all of them to _Alon Zakai
2014-02-19Fix atomic decrement (operand order of emitted code was flipped).jonas echterhoff
2014-02-18remove locale call handlers, we do this in the js library nowAlon Zakai
2014-02-18guarantee that sanitize() returns a proper non-colliding value for each inputAlon Zakai
2014-02-18leave lines with calls to no-ops without a ;Alon Zakai
2014-02-17support reserved function pointersAlon Zakai
2014-02-17only emit declares with usesAlon Zakai
2014-02-14emit nothing for lifetime intrinsicsAlon Zakai
2014-02-14emit an abort if calling an absolute addressAlon Zakai
2014-02-14typo fixAlon Zakai
2014-02-14fix ashr when high bits are exactly 0Alon Zakai
2014-02-14Another minor code simplification.Dan Gohman
2014-02-14Minor code simplification.Dan Gohman
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-14Don't try to nativize aggregate allocas.Dan Gohman
2014-02-14Fix a crash when an alloca has no ultimate users.Dan Gohman
2014-02-14Handle pointer types and ConstantExprs in more places.Dan Gohman
2014-02-14Use DataLayout to determine type size.Dan Gohman
getPrimitiveSizeInBits works on integer types but not on pointer types. This change makes the code more robust, and will help support the removal of the pointer lowering pass. This also requires removing const from some Type pointers. Types are immutable, so the convention is that const is redundant.
2014-02-14Respect the requested signedness for pointer values.Dan Gohman
2014-02-14Handle ConstantPointerNull correctly in more places.Dan Gohman
2014-02-14emit bool constants as unsigned in a consistent mannerAlon Zakai
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