aboutsummaryrefslogtreecommitdiff
path: root/lib/Target/JSBackend/JSBackend.cpp
AgeCommit message (Collapse)Author
2014-03-14warn if given the wrong tripleAlon Zakai
2014-03-14prettyWarning utilityAlon Zakai
2014-03-11tiny indentation fixAlon Zakai
2014-03-08resolve constants fully, through both multiple aliases and bitcastsAlon Zakai
2014-03-06handle aliases in getConstAsOffsetAlon Zakai
2014-03-05Disable the ResolveAliases and GlobalCleanup passes.Dan Gohman
Also add a test for handling of global aliases.
2014-03-05Minor CallHandler cleanups.Dan Gohman
2014-03-05Don't emit redirects for llvm.memcpy.p0i8.p0i8.i32 and friends.Dan Gohman
We never reference these intrinsics by name, so we don't need redirects for them.
2014-03-05Don't emit JS declarations for LLVM intrinsics expanded inline.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-05emscripten_debugger() intrinsicAlon Zakai
2014-03-05Teach phi translation to also look through bitcasts.Dan Gohman
This fixes a regression introduced in d95cd364f0c049d6c1b8d78746d44c00ed2f69f2; when regular expression translation looks through bitcasts but phi translation doesn't, phi translation may fail to properly detect dependencies.
2014-03-05Trim unneeded #includes.Dan Gohman
This also helps clarify that we're not using the MC framework.
2014-03-05Eliminate a few more temporary std::strings.Dan Gohman
2014-03-04Don't run calculateNativizedVars at -O1 and higher.Dan Gohman
2014-03-04Don't run SimplifyAllocas at -O1 and higher.Dan Gohman
2014-03-04Perform alloca coloring only at -O1 and higher.Dan Gohman
2014-03-04Introduce AllocaManager, a class for managing allocas.Dan Gohman
The AllocaManager performs stack layout for alloca objects. It is capable of analyzing alloca liveness and sharing space between multiple allocas.
2014-03-04Simplify the handling of unnamed values.Dan Gohman
This will also make it easier for the upcoming AllocaManager to eliminate allocas, because unnamed eliminated allocas won't be assigned names.
2014-03-04Handle name prefixing in sanitizeGlobal/sanitizeLocal.Dan Gohman
In the case of sanitizeGlobal, "_" was being prefixed in two different places; this factors it out into one place.
2014-03-04Better integration with the LLVM Target system.Dan Gohman
In particular, this is needed to make getOptLevel() work.
2014-03-03forward assertions setting into backend, and use it to check for invalid # ↵Alon Zakai
of args in static calls
2014-03-03Switch to 16-byte stack alignment.Dan Gohman
When we support 16-byte SIMD types, it will be nice to be able to store them on the stack aligned without dynamic stack pointer realignment.
2014-03-03Optimize out code and variables for no-op pointer casts.Dan Gohman
2014-03-03Don't store padding zeros for a ConstantAggregateZero.Dan Gohman
2014-02-28Move ExpandI64 into lib/Target/JSBackend.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-25Fix handling of ConstantExpr Selects.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-20indirectbr supportAlon 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-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 an abort if calling an absolute addressAlon Zakai
2014-02-14Minor code simplification.Dan Gohman
2014-02-14Don't try to nativize aggregate allocas.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-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-12Constify more things.Dan Gohman
2014-02-12Use the LLVM pass-manager infrastructure for DataLayout.Dan Gohman
2014-02-12Map optimizations.Dan Gohman