aboutsummaryrefslogtreecommitdiff
AgeCommit message (Collapse)Author
2014-03-05Don't emit JS declarations for LLVM intrinsics expanded inline.Dan Gohman
2014-03-05Tidy up the output for memset and memcpy, and add a test.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-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-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-05Fix missing LLVMBuild.txt and CMake dependencies.Dan Gohman
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-05Fix a broken CMake build file.Dan Gohman
2014-03-05Merge pull request #28 from sunfishcode/incomingAlon Zakai
The alloca coloring patch
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-04Update to the new datalayout string.Dan Gohman
2014-03-03check argument and return types staticallyAlon Zakai
2014-03-03forward assertions setting into backend, and use it to check for invalid # ↵Alon Zakai
of args in static calls
2014-03-03Merge pull request #26 from sunfishcode/incomingAlon Zakai
Patches that arrose during work on the alloca colorer
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-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-03-03Don't store padding zeros for a ConstantAggregateZero.Dan Gohman
2014-03-03release 1.13.01.13.0Alon Zakai
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-28Update tests for recent changes which result in more parens being used in ↵Dan Gohman
some places.
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-261.12.31.12.3Alon 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-251.12.21.12.2Alon 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