aboutsummaryrefslogtreecommitdiff
AgeCommit message (Collapse)Author
2014-05-09Merge branch 'incoming'HEADmasterAlon Zakai
2014-05-091.18.01.18.0Alon Zakai
2014-05-06Merge branch 'incoming'1.17.0Alon Zakai
2014-05-061.17.0Alon Zakai
2014-04-25Don't align member functions.Dan Gohman
Emscripten uses the ARM ABI for pointers to member functions and doesn't require that member functions are aligned.
2014-04-25Introduce an Emscripten C++ ABI.Dan Gohman
Emscripten uses the Itanium C++ ABI for most things, except that it uses ARM C++ ABI pointers to member functions, to avoid the overhead of aligning functions.
2014-04-16Merge branch 'incoming'1.16.0Alon Zakai
2014-04-151.16.0Alon Zakai
2014-04-15Merge pull request #3 from juj/skip_clang_testsAlon Zakai
Skip Clang tests option.
2014-04-141.15.11.15.1Alon Zakai
2014-04-101.15.01.15.0Alon Zakai
2014-04-10Allow setting CLANG_INCLUDE_TESTS=OFF to avoid having to build long-running ↵Jukka Jylanki
tests with cmake. This change is already in upstream LLVM 3.4 repository.
2014-04-09set the emscripten backend's atomic widths to 32Alon Zakai
2014-04-071.14.11.14.1Alon Zakai
2014-03-241.14.01.14.0Alon Zakai
2014-03-141.13.21.13.2Alon Zakai
2014-03-101.13.11.13.1Alon Zakai
2014-03-03Set the natural stack alignment for asm.js to 16 bytes.Dan Gohman
2014-03-03Fix handling of byval arguments to set the alignment properly.Dan Gohman
Also, fix the way we override DefaultABIInfo methods, since classifyArgumentType and classifyReturnType are not actually virtual. Also, DefaultABIInfo does the right thing for floating-point types, so we don't need to special-case them.
2014-03-03release 1.13.01.13.0Alon Zakai
2014-02-28Drop addAsmMemoryAroundSyncSynchronize() and asmMemoryIsFence().Dan Gohman
For us, staying in sync with upstream on issues related to the memory model is more important. None of clang, gcc, nor icc appear to offer these features. If such features are desirable, they should ideally be implemented in upstream clang, in a target-independent way, since this issue would affect users of all platforms which support threads, not just PNaCl or Emscripten.
2014-02-26Check in the version of this test which is actually updated for ↵Dan Gohman
asmjs-unknown-emscripten.
2014-02-26Check in the version of this test which is actually updated for ↵Dan Gohman
asmjs-unknown-emscripten.
2014-02-261.12.31.12.3Alon Zakai
2014-02-251.12.21.12.2Alon Zakai
2014-02-25Merge branch 'master' of github.com:sunfishcode/emscripten-fastcomp-clang ↵Alon Zakai
into incoming
2014-02-24Define an Emscripten toolchain.Dan Gohman
This is pretty minimal right now; eventually this may subsume code currently in the emscripten wrapper scripts.
2014-02-24Introduce the asmjs-unknown-emscripten target triple.Dan Gohman
Notable changes from le32-unknown-nacl so far include: - Set i32 as the legal integer set, to help the optimizer avoid creating needlessly inefficient code for asm.js. - We can use llvm.pow. - Don't predefine __ELF__ or __pnacl__ so that we don't need to undefine them later. - Do predefine asm.js and Emscripten macros, so that we don't need to define them later. - Don't provide __has_feature(pnacl).
2014-02-241.12.11.12.1Alon Zakai
2014-02-24add version number (1.11.1)1.11.1Alon Zakai
2013-11-08Cherrypick upstream r183033: Add support for optimized (non-generic) atomic ↵JF Bastien
libcalls. For integer types of sizes 1, 2, 4 and 8, libcompiler-rt (and libgcc) provide atomic functions that pass parameters by value and return results directly. libgcc and libcompiler-rt only provide optimized libcalls for __atomic_fetch_*, as generic libcalls on non-integer types would make little sense. This means that we can finally make __atomic_fetch_* work on architectures for which we don't provide these operations as builtins (e.g. ARM). This should fix the dreaded "cannot compile this atomic library call yet" error that would pop up once every while. These code generation issues are encountered because PNaCl doesn't inline some of the atomic instructions, whereas other targets do. This patch is just after the 3.3 branch and applies cleanly, but it doesn't fix all issues: there is still at least one with atomic operations on pointers which isn't as clean to fix as applying one patch, so I'll leave that one as-is for now. R=dschuff@chromium.org BUG= https://code.google.com/p/nativeclient/issues/detail?id=3623 TEST= ./pnacl/scripts/llvm-test.py --libcxx-tests Review URL: https://codereview.chromium.org/59793007
2013-10-28Cherry-pick upstream clang r193506: "Define [U]LLONG_{MIN,MAX} for C++11, ↵JF Bastien
add tests." This is needed for libc++ testing with newlib. R=dschuff@chromium.org BUG= https://code.google.com/p/nativeclient/issues/detail?id=3623 TEST= ./pnacl/scripts/llvm-test.py --libcxx-tests Review URL: https://codereview.chromium.org/47573003
2013-08-29Clang: Update OWNERS.JF Bastien
R=dschuff@chromium.org Review URL: https://codereview.chromium.org/23484011
2013-08-07Treat __sync_synchronize and asm("":::"memory") as stronger fences.JF Bastien
This is a companion patch to: https://codereview.chromium.org/22240002/ https://codereview.chromium.org/22474008/ and deals with the Clang-side of things. The above patch will handle the fallouts of this Clang patch, including some changes to un-duplicate work that RewriteAsmDirectives.cpp does. The goal of this patch is to force some extra ordering on non-atomics for le32 which LLVM doesn't necessarily provide. R=eliben@chromium.org TEST= ninja check-all BUG= https://code.google.com/p/nativeclient/issues/detail?id=3475 BUG= https://code.google.com/p/nativeclient/issues/detail?id=3611 Review URL: https://codereview.chromium.org/22294002
2013-08-01Add the __nacl_atomic_is_lock_free builtinJF Bastien
This is part of a bigger CL to fix C++11 in PNaCl, to commit in the following order: - https://codereview.chromium.org/20552002 - https://codereview.chromium.org/20554002 - https://codereview.chromium.org/20560002 - https://codereview.chromium.org/20561002 This change is needed in Clang so that it can recognize the builtin and translate it to the intrinsic that 20554002 adds. BUG= https://code.google.com/p/nativeclient/issues/detail?id=3475 TEST= ./scons run_synchronization_cpp11_test --verbose bitcode=1 platform=x86-64 R=dschuff@chromium.org Review URL: https://codereview.chromium.org/20552002
2013-07-25Change __cyg_profile_func_enter/exit to __pnacl_profile... and change the ↵Robert Grosse
signature. __pnacl_profile_function_x takes a single argument - the name of the current function as a constant string, rather than a pair of function addresses like __cyg takes. This makes it work even in PNaCl and removes the need to track symbol information separately. BUG=none R=dschuff@chromium.org Review URL: https://codereview.chromium.org/20000003
2013-07-25Add a -finstrument-functions-size=n option to control basic blockRobert Grosse
filtering. If omitted entirely, the original behavior is restored. This also undos the string and __pnacl_profile stuff from the previous CL. Finally, it fixes and updates the -finstrument-function tests. BUG=none R=bradnelson@google.com, dschuff@chromium.org Review URL: https://codereview.chromium.org/19793007
2013-07-24Clang: Add presubmit script and OWNERS file to match our LLVM repoDerek Schuff
Several people have been bitten recently by the strange git cl behavior that silently fails to push changes if the local branch does not have the correct upstream branch, so copy our llvm presubmit script that checks for this. Also create an OWNERS file, because adding a presubmit script also causes git cl to do an OWNERS check which fails if no OWNERS file is present R=jvoung@chromium.org BUG=none Review URL: https://codereview.chromium.org/20051011
2013-07-22Cherrypick upstream volatile _Complex alignment patchesJF Bastien
Specifically: r186564 - Fix volatile _Complex alignment test on platforms where 64-bit floating point isn't 64-bit aligned r186490 - Propagate alignment for _Complex These should fix GCC torture test failures, as well as the all-important uses of volatile _Complex numbers in C, and their alignment being incorrect. BUG= PNaCl FYI bots red on torture tests TEST= ./tools/toolchain_tester/torture_test.py pnacl x86-64 --concurrency=32 >& torture-x86-64.log ; ./tools/toolchain_tester/torture_test.py pnacl x86-32 --concurrency=32 >& torture-x86-32.log ; ./tools/toolchain_tester/torture_test.py pnacl arm --concurrency=32 >& torture-arm.log R=stichnot@chromium.org Review URL: https://codereview.chromium.org/19915003
2013-07-16Mop up errors - now it compiles.Eli Bendersky
2013-07-15Merge commit '20c7d45a4da9f58ad805ad1d37f92fe7dc232ec8'Eli Bendersky
Conflicts: lib/CodeGen/ItaniumCXXABI.cpp
2013-07-12Merge branch 'master' of http://git.chromium.org/native_client/pnacl-clangEli Bendersky
2013-07-10Cherry-picking the pow-for-le32 fix from upstream clang.Eli Bendersky
SVN log from upstream clang: r185568 | eliben | 2013-07-03 12:19:12 -0700 (Wed, 03 Jul 2013) Add target hook CodeGen queries when generating builtin pow*. Without fmath-errno, Clang currently generates calls to @llvm.pow.* intrinsics when it sees pow*(). This may not be suitable for all targets (for example le32/PNaCl), so the attached patch adds a target hook that CodeGen queries. The target can state its preference for having or not having the intrinsic generated. Non-PNaCl behavior remains unchanged; PNaCl-specific test added. BUG= https://code.google.com/p/nativeclient/issues/detail?id=3513 R=dschuff@chromium.org Review URL: https://codereview.chromium.org/18953003
2013-06-27Add codereview.settings to the git/clang repoEli Bendersky
BUG=None R=jvoung@chromium.org Review URL: https://codereview.chromium.org/18140003
2013-06-27Clang should not generate calls to llvm.pow.* intrinsics.Eli Bendersky
Instead, it should generate calls to the pow* library functions, which get found within the pexe. This is a LOCALMOD for now, but I'm working on a more generic solution that can be upstreamed to Clang. BUG=https://code.google.com/p/nativeclient/issues/detail?id=3513 R=jvoung@chromium.org Review URL: https://codereview.chromium.org/18135002
2013-06-24Switch back to non-ARM ABI for C++ guard variables under PNaClMark Seaborn
My previous change set IsARM=true for PNaCl in ItaniumCXXABI.cpp. This gives us ARM-style representation of method pointers, which we want, and ARM-style usage of guard variables, which we don't necessarily want. Switch the latter back so that the guard variable is tested via "load i8 and compare with zero" rather than a "load i32 and test the bottom bit". This should make the Clang-generated code match with how libstdc++ is using the guard variable. This makes the code match the patch I sent upstream (which hasn't been committed yet). BUG=https://code.google.com/p/nativeclient/issues/detail?id=3450 TEST=test/CodeGenCXX/static-init-pnacl.cpp Review URL: https://codereview.chromium.org/17616003
2013-06-19Use ARM-style representation for C++ method pointers under PNaClMark Seaborn
This avoids baking into pexes an assumption that function pointers are 0 mod 2, which might not be the case in future sandboxing models. BUG=https://code.google.com/p/nativeclient/issues/detail?id=3450 TEST=run_method_pointer_repr_test in NaCl + llvm-lit test Review URL: https://codereview.chromium.org/17419005
2013-06-04Remove bit not added to 3.3.Bill Wendling
git-svn-id: https://llvm.org/svn/llvm-project/cfe/branches/release_33@183212 91177308-0d34-0410-b5e6-96231b3b80d8
2013-06-04Update release notes for the 3.3 release.Bill Wendling
git-svn-id: https://llvm.org/svn/llvm-project/cfe/branches/release_33@183208 91177308-0d34-0410-b5e6-96231b3b80d8
2013-05-30Merging r182645:Bill Wendling
------------------------------------------------------------------------ r182645 | eugenis | 2013-05-24 07:28:03 -0700 (Fri, 24 May 2013) | 6 lines Add -lrt to sanitizer link arguments. Sanitizer runtime intercepts functions from librt. Not doing this will fail if the librt dependency is not present at program startup (ex. comes from a dlopen()ed library). ------------------------------------------------------------------------ git-svn-id: https://llvm.org/svn/llvm-project/cfe/branches/release_33@182944 91177308-0d34-0410-b5e6-96231b3b80d8