aboutsummaryrefslogtreecommitdiff
path: root/test
AgeCommit message (Collapse)Author
2013-08-02Remove unnecessary pointer casts on store instructions.Karl Schimpf
BUG= https://code.google.com/p/nativeclient/issues/detail?id=3544 R=mseaborn@chromium.org Review URL: https://codereview.chromium.org/21964002
2013-08-02Remove duplicate 'we' in comment.Karl Schimpf
Fixes change in CL https://codereview.chromium.org/21614002 that was overlooked. BUG=None R=jvoung@chromium.org Review URL: https://codereview.chromium.org/21908004
2013-08-02Remove the bitcast (of global values) from load instructions.Karl Schimpf
Adds the eliding of bitcasts that are used as an argument to instructions that expect normalized pointers. Currently, the checked in code only checks normalized pointers for load instructions. Hence, the restriction to load instructions. As more instructions are modified to check for normalized pointers, this code will apply to those instructions. BUG= https://code.google.com/p/nativeclient/issues/detail?id=3544 R=mseaborn@chromium.org Review URL: https://codereview.chromium.org/21614002
2013-08-01Add Intrinsic::nacl_atomic_is_lock_freeJF 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 should be the last PNaCl ABI change for C11/C+11 atomic support. Note that Clang already has a builtin for lock-free, but it's partly resolved by Clang's ExprConstant.cpp and CGBuiltin.cpp, whereas what we want is a call that becomes a constant at translation-time. I made the translation part fairly general so it's easy to support architectures where ``true`` isn't always the right answer. BUG= https://code.google.com/p/nativeclient/issues/detail?id=3475 TEST= ./scons run_synchronization_cpp11_test --verbose bitcode=1 platform=x86-64 TEST= ninja check-all R=dschuff@chromium.org Review URL: https://codereview.chromium.org/20554002
2013-08-01Remove the inttoptr dependency from load instructions.Karl Schimpf
Elides inttoptr casts used (exclusively) in load instructions when PNaClVersion=2. This is an incremental start on removing the inttoptr instruction from the PNaCl wire format (See issue 3544 for more information on the strategy of removing ptrtoint). Also modifies PNaCl bitcode reader/writer to accept PNaClVersion=1 as supported, and PNaClVersion=2 as unsupported but readable (allowing pnacl-freeze and pnacl-thaw to work on such files). Also allows command-line option --pnacl-version for setting PNaClVersion in the PNaCl bitcode writer. Also fixes some problems on PNaCl bitcode headers, using common support to determine when the read/written PNaCl bitcode file is valid. BUG= https://code.google.com/p/nativeclient/issues/detail?id=3544 R=jvoung@chromium.org Review URL: https://codereview.chromium.org/5812155903377408
2013-07-30Rewrite ``asm("":::"memory")`` to ``fence seq_cst``JF Bastien
This is often used as a compiler barrier and should "just work" in user code. BUG= https://code.google.com/p/nativeclient/issues/detail?id=2345 R=eliben@chromium.org TEST= (cd ./pnacl/build/llvm_x86_64 && ninja check-all) Review URL: https://codereview.chromium.org/21178002
2013-07-25Clean some PNaCl-specific tests.Jim Stichnoth
BUG= https://code.google.com/p/nativeclient/issues/detail?id=3588 R=jvoung@chromium.org Review URL: https://codereview.chromium.org/19606003
2013-07-24Hide the x86-64 sandbox base address.Jim Stichnoth
Prevent sandbox addresses from being written to the stack. This covers the following cases: 1. Function calls manually push a masked return address and jump to the target, rather than using the call instruction. 2. When the function prolog chooses to use a frame pointer (rbp), it saves a masked version of the old rbp. 3. Indirect branches (jumps, calls, and returns) uniformly use r11 to construct the 64-bit target address. 4. Register r11 is marked as reserved (similar to r15) so that the register allocator won't inadvertently spill a code address to the stack. These transformations can be disabled for performance testing with the flag "-sfi-hide-sandbox-base=false". BUG= https://code.google.com/p/nativeclient/issues/detail?id=1235 R=eliben@chromium.org, mseaborn@chromium.org Review URL: https://codereview.chromium.org/19505003
2013-07-23Cherrypick test from r186226 - Fix ARM paired GPR COPY loweringJF Bastien
BUG= test the fix that was already cherrypicked TEST= self R=eliben@chromium.org Review URL: https://codereview.chromium.org/19704008
2013-07-22Cherrypick upstream ARM FastISel ext patchesJF Bastien
Specifically: r186489 - Fix ARMFastISel::ARMEmitIntExt shift emission r183794 - ARM FastISel fix sext/zext fold r183601 - Fix unused variable warning from my previous patch r183551 - ARM FastISel integer sext/zext improvements These should fix some failures that I had run into back then, as well as make ARM FastISel faster because it doesn't go to SelectionDAG. BUG= https://code.google.com/p/nativeclient/issues/detail?id=3501 R=jvoung@chromium.org TEST= make check-all Review URL: https://codereview.chromium.org/19992002
2013-07-22Disallow dev/private intrinsics by default (only llvm.nacl.target.arch remains)Jan Voung
BUG=https://code.google.com/p/nativeclient/issues/detail?id=3525 R=jfb@chromium.org Review URL: https://codereview.chromium.org/19668004
2013-07-20Remove prefetchJF Bastien
Following our discussion in the related bug, prefetch will not be part of our initial stable ABI. BUG= https://code.google.com/p/nativeclient/issues/detail?id=3531 TEST= cd ./pnacl/build/llvm_x86_64; ninja check R=jvoung@chromium.org Review URL: https://codereview.chromium.org/19771015
2013-07-19Simplify the test by removing unnecessary function body.Eli Bendersky
Suggested in review: https://codereview.chromium.org/19705002/ BUG=None R=jvoung@chromium.org Review URL: https://codereview.chromium.org/19774012
2013-07-18Merge remote-tracking branch 'origin/master'Eli Bendersky
2013-07-18Port new tests from origin/masterEli Bendersky
2013-07-18Increase coverage of NaCl-specific LLVM regression tests.Eli Bendersky
The issues these tests exercise came up in the recent merge of LLVM 3.3; Since it's considerably more difficult to debug problems in scons tests or sbtc tests, it makes sense to increase the coverate of LLVM regression tests as much as possible. These tests help resolve merging issues relatively quickly and should provide a first-line defense against problem arising in the NaCl specific LOCALMODs we have within LLVM. BUG=https://code.google.com/p/nativeclient/issues/detail?id=3578 R=jfb@chromium.org Review URL: https://codereview.chromium.org/19705002
2013-07-17Disallow a global address in the x86-64 displacement field.Jim Stichnoth
This applies only to %r15 sandboxed memory references. The problem is that if the index register is negative, the sandboxing operation will cause the index to become a large positive 32-bit value, which combined with the displacement, will overflow and try to reference memory outside the sandbox. This situation may legitimately occur if the compiler happens to construct a (constant) interior pointer to the middle of the global struct/array, and then dereferences it with a variable offset. After this fix, pnacl/scripts/testsuite_known_failures_pnacl.txt can be updated to remove the "aha x86-64" known failure. BUG= https://code.google.com/p/nativeclient/issues/detail?id=3517 R=eliben@chromium.org Review URL: https://codereview.chromium.org/17987002
2013-07-16Fixing make check errors...Eli Bendersky
2013-07-15Merge commit '7dfcb84fc16b3bf6b2379713b53090757f0a45f9'Eli Bendersky
Conflicts: docs/LangRef.rst include/llvm/CodeGen/CallingConvLower.h include/llvm/IRReader/IRReader.h include/llvm/Target/TargetMachine.h lib/CodeGen/CallingConvLower.cpp lib/IRReader/IRReader.cpp lib/IRReader/LLVMBuild.txt lib/IRReader/Makefile lib/LLVMBuild.txt lib/Makefile lib/Support/MemoryBuffer.cpp lib/Support/Unix/PathV2.inc lib/Target/ARM/ARMBaseInstrInfo.cpp lib/Target/ARM/ARMISelLowering.cpp lib/Target/ARM/ARMInstrInfo.td lib/Target/ARM/ARMSubtarget.cpp lib/Target/ARM/ARMTargetMachine.cpp lib/Target/Mips/CMakeLists.txt lib/Target/Mips/MipsDelaySlotFiller.cpp lib/Target/Mips/MipsISelLowering.cpp lib/Target/Mips/MipsInstrInfo.td lib/Target/Mips/MipsSubtarget.cpp lib/Target/Mips/MipsSubtarget.h lib/Target/X86/X86FastISel.cpp lib/Target/X86/X86ISelDAGToDAG.cpp lib/Target/X86/X86ISelLowering.cpp lib/Target/X86/X86InstrControl.td lib/Target/X86/X86InstrFormats.td lib/Transforms/IPO/ExtractGV.cpp lib/Transforms/InstCombine/InstCombineCompares.cpp lib/Transforms/Utils/SimplifyLibCalls.cpp test/CodeGen/X86/fast-isel-divrem.ll test/MC/ARM/data-in-code.ll tools/Makefile tools/llvm-extract/llvm-extract.cpp tools/llvm-link/CMakeLists.txt tools/opt/CMakeLists.txt tools/opt/LLVMBuild.txt tools/opt/Makefile tools/opt/opt.cpp
2013-07-15Run the LLVM IR verifier just once in pnacl-llc.Eli Bendersky
By default, using the path inherited from llc, the verifier is run twice. We only need it to run once right after reading the bitcode in and before the ABI verifier runs. BUG=https://code.google.com/p/nativeclient/issues/detail?id=3553 R=jvoung@chromium.org Review URL: https://codereview.chromium.org/18920004
2013-07-13Concurrency support for PNaCl ABIJF Bastien
Add portable support for concurrency in PNaCl's ABI: - Promote volatile to atomic. - Promote all memory ordering to sequential consistency. - Rewrite all atomic operations to frozen NaCl intrinsics for pexe. - Rewrite atomic intrinsics to LLVM instructions for translation. This change also adds documentation to the PNaCl language reference, as well as tests where it makes sense. A future CL could clean up more of our code which mentions atomics, volatiles, memory orderings. Multiple reviewers because this is a big patch: - eliben: LLVM-fu and ResolvePNaClIntrinsics. - dschuff: ABI stability. - mseaborn: ABI stability. - sehr: Tron-duty (fight for the user's programs to work). BUG= https://code.google.com/p/nativeclient/issues/detail?id=3475 R=dschuff@chromium.org, eliben@chromium.org, sehr@google.com TEST= (cd ./pnacl/build/llvm_x86_64; ninja check-all) && ./pnacl/test.sh test-x86-32 && ./pnacl/test.sh test-x86-64 && ./pnacl/test.sh test-arm && ./pnacl/test.sh test-x86-32-sbtc && ./pnacl/test.sh test-x86-64-sbtc && ./pnacl/test.sh test-arm-sbtc Review URL: https://codereview.chromium.org/17777004
2013-07-09Make GlobalOpt's GV-by-alloca replacement work for PNaCl.Eli Bendersky
GlobalOpt currently assumes only an external "main" is the "real main". This is no longer the case for PNaCl, where we internalize "main". Make the test more strict and PNaCl specific by checking that "main" is just used once - in a call from "_start", but does not have to be external. Note that this also addresses a possible bug in the optimization for C code, since C does not guarantee that main is not recursive. This CL's purpose is to address a SPEC performance regression - 10% in 183.equake. The regression appeared after our ABI change that made 'main' internal, which disabled this particular optimization. The CL addresses this by re-enabling the optimization and also being more C-standard conforming. BUG=None Review URL: https://codereview.chromium.org/18615015
2013-07-09PNaCl: Fix negative relocation addends on x86-32Mark Seaborn
Disable an assertion. This assertion made the behaviour on x86-32 inconsistent with x86-64 and ARM. BUG=https://code.google.com/p/nativeclient/issues/detail?id=3548 TEST=*.ll tests + PNaCl toolchain trybots Review URL: https://codereview.chromium.org/18261008
2013-07-08Fix for a regression caused by the LoopVectorizer whenTom Stellard
vectorizing loops with memory accesses to non-zero address spaces. It simply dropped the AS info. Fixes PR16306. Merged from r184103 Author: Pekka Jaaskelainen <pekka.jaaskelainen@tut.fi> Date: Mon Jun 17 18:49:06 2013 +0000 git-svn-id: https://llvm.org/svn/llvm-project/llvm/branches/release_33@185869 91177308-0d34-0410-b5e6-96231b3b80d8
2013-07-08R600: Fix R600ControlFlowFinalizer not considering VTX_READ 128 bit dst regTom Stellard
Patch by: Vincent Lejeune https://bugs.freedesktop.org/show_bug.cgi?id=64877 NOTE: This is a candidate for the 3.3 branch. Merged from r182600 Author: Tom Stellard <thomas.stellard@amd.com> Date: Thu May 23 18:26:42 2013 +0000 git-svn-id: https://llvm.org/svn/llvm-project/llvm/branches/release_33@185868 91177308-0d34-0410-b5e6-96231b3b80d8
2013-07-03Do not fail when library functions are declared incorrectly.Eli Bendersky
Instead, defer the undefined behavior to runtime. BUG=https://code.google.com/p/nativeclient/issues/detail?id=3537 R=mseaborn@chromium.org Review URL: https://codereview.chromium.org/18552007
2013-07-03Don't generate Type ID's for global variable fields.Karl Schimpf
Also removed local MaxGlobalType in WriteModuleInfo because it calls VE.getTypeID(GV->getTYpe(), which is no longer defined for globals. Also noted that MaxAlignment in WriteModuleInfo was no longer used and removed it. BUG= https://code.google.com/p/nativeclient/issues/detail?id=3541 R=mseaborn@chromium.org Review URL: https://codereview.chromium.org/18185005
2013-07-03Cleanup output of pnacl-bcanalyzer.Karl Schimpf
(1) Fix spacing in header of record histogram so that columns line up. (2) Only print 8 operands per line in the dump. Keeps lines from getting too long. BUG=None R=jvoung@chromium.org, mseaborn@chromium.org Review URL: https://codereview.chromium.org/18147006
2013-07-02Move LLVM sqrt intrinsic to stable (for float and doubles).Jan Voung
On the hardware that we support, they are implemented by instructions and have consistent behavior for -0.0, values less than -0.0, infinity, and nan. We will need to be careful to guarantee the same behavior for untested hardware. TEST=run_llvm_math_intrinsics_test BUG=http://code.google.com/p/nativeclient/issues/detail?id=3378 R=jfb@chromium.org, mseaborn@chromium.org Review URL: https://codereview.chromium.org/18559005
2013-07-02Simplify globals in PNaCl wire format based on normalized constants.Karl Schimpf
Generates simple global variable records, followed by list of records defining byte initialization and relocations. BUG= https://code.google.com/p/nativeclient/issues/detail?id=3504 R=mseaborn@chromium.org Review URL: https://codereview.chromium.org/18111002
2013-07-02Enable ABI verification check for whitelisting external symbolsEli Bendersky
BUG=https://code.google.com/p/nativeclient/issues/detail?id=3339 R=mseaborn@chromium.org Review URL: https://codereview.chromium.org/18426002
2013-07-01Internalize all symbols except _start.Eli Bendersky
BUG=https://code.google.com/p/nativeclient/issues/detail?id=3532 R=mseaborn@chromium.org Review URL: https://codereview.chromium.org/18348008
2013-07-01PNaCl ABI checker: Check for exact names and types of whitelisted intrinsicsMark Seaborn
This makes the checker stricter, so that it will reject names such as "@llvm.memcpy.foo". Reuse Intrinsic::getName() and Intrinsic::getType() for checking the exact function name and type that we should expect for whitelisted intrinsics. This is simpler than writing code to check each argument type separately. intrinsics.ll test: Add some tests. Simplify existing tests by replacing multiple CHECK-NOTs with a single "CHECK-NOT: disallowed", which is stricter because it is less specific. BUG=https://code.google.com/p/nativeclient/issues/detail?id=3530 TEST=*.ll tests + PNaCl toolchain trybots Review URL: https://codereview.chromium.org/18302002
2013-06-29PNaCl ABI: Remove use of @llvm.memset.p0i8.i64 (64-bit intrinsic variant)Mark Seaborn
Convert calls to this intrinsic to use the 32-bit variant instead. Do the same for the memcpy and memmove intrinsics too. Change the PNaCl ABI verifier to check this argument. BUG=https://code.google.com/p/nativeclient/issues/detail?id=3530 TEST=*.ll tests + PNaCl toolchain trybots Review URL: https://codereview.chromium.org/18226003
2013-06-26PNaCl wire format: Use FORWARDTYPEREF consistently for all forward referencesMark Seaborn
Before this change, the writer would only emit FORWARDTYPEREF for some operands, e.g. the first operand of BINOP but not the second, on the grounds that the type of the second operand can be inferred. However, that makes the format complicated. Change the writer so that it always emits FORWARDTYPEREF for a forward ref. This unifies PushValueAndType() and pushValue(). pushValue() gains a call to EmitFnForwardTypeRef() so becomes the same as PushValueAndType(). Change the reader to be stricter, so that it requires a FORWARDTYPEREF to have been emitted in most cases. This is done by ignoring the implied type argument. Tasks still remaining: * Make reader stricter so that multiple FORWARDTYPEREFs are disallowed. * Remove now-unused Type arguments in the reader. BUG=https://code.google.com/p/nativeclient/issues/detail?id=3507 TEST=new llvm-lit test + PNaCl toolchain trybots Review URL: https://codereview.chromium.org/17806003
2013-06-26PNaCl wire format: Clean up representation of "alloca" instructionMark Seaborn
For some reason, the size operand of "alloca" was represented using an absolute value ID + type, unlike other instructions where relative value IDs are used. Change the "alloca" representation to be consistent with other instructions, so that we can use PushValueAndType() in the writer and getValue() in the reader. Also take this opportunity to remove the field for alloca's result type, since it's always i8* in PNaCl. This is part of a cleanup to make forward reference handling stricter: it removes a use of getOrCreateFnValueByID(), which isn't strict (that is, it doesn't reject duplicate FORWARDTYPEREF records). BUG=https://code.google.com/p/nativeclient/issues/detail?id=3507 TEST=PNaCl toolchain trybots Review URL: https://codereview.chromium.org/17757004
2013-06-25Support for mem* library functions in stable bitcode via intrinsics.Eli Bendersky
* Don't preserve external linking for mem{cpy,move,cmp} during LTO. * In the RewritePNaClLibraryCalls pass - add rewriting of mem* calls to appropriate intrinsics, similarly to the way it was done for longjmp. BUG=https://code.google.com/p/nativeclient/issues/detail?id=3493 R=mseaborn@chromium.org Review URL: https://codereview.chromium.org/17622003
2013-06-25PNaCl wire format: Remove the top-level DATALAYOUT recordMark Seaborn
PNaCl only supports a fixed data layout, so treat this as implicit in the pexe file. Add the data layout field back at read time, to prevent accidentally using any architecture-specific backend data layout when translating, and to ensure that any IR passes that use the data layout work correctly. BUG=https://code.google.com/p/nativeclient/issues/detail?id=3505 TEST=*.ll tests + PNaCl toolchain trybots Review URL: https://codereview.chromium.org/17591014
2013-06-25PNaCl: Fix ExpandStructRegs to handle "select" instructionsMark Seaborn
The code is similar to the case for handling phi nodes. It turns out that "select" on struct values can occur in practice with use of C++ method pointers. BUG=https://code.google.com/p/nativeclient/issues/detail?id=3514 TEST=*.ll tests + PNaCl toolchain trybots Review URL: https://codereview.chromium.org/17706002
2013-06-25Revert "Apply upstream r183551, r183601, r183624 and r183794"Jan Voung
Revert this until we fix i1 sext. Currently, it uses LSL and ASR, which are pseudo-instructions and get dropped on the floor when generating .o files. We'll fix that, but for now revert to green the bots. BUG=https://code.google.com/p/nativeclient/issues/detail?id=3501 R=jfb@chromium.org Review URL: https://codereview.chromium.org/17715002
2013-06-25PNaCl: Fix removal of dead function prototypes in ABI simplificationMark Seaborn
The use of StripDeadPrototypes in PNaClABISimplify.cpp wasn't always having an effect: it doesn't work if there are dead constant references remaining to a function declaration. ReplacePtrsWithInts was leaving some of these references behind, so fix it. BUG=none TEST=llvm-lit tests Review URL: https://codereview.chromium.org/17636006
2013-06-25PNaCl ABI: Disallow various operations on the i1 typeMark Seaborn
Disallow i1 on loads/stores and require the conversions to i8 to be explicit. Add a pass, PromoteI1Ops, that adds the conversions. (Load/store on i1 occur in practice in small_tests for some boolean globals.) Disallow i1 for most arithmetic/comparison operations since these aren't very useful and it's a nuisance for a code generator to have to support these. I haven't seen these occur in practice, but PromoteI1Ops nevertheless expands them. We still allow and/or/xor on i1 because these do occur in practice, and they're less of a nuisance to handle because they never overflow: no truncation to 1 bit is required, unlike with adds. Restrict the type of alloca's argument. Clang always uses i32 here. Disallow i1 in switch instructions. Clang doesn't generate i1 switches for booleans. Move CopyLoadOrStoreAttrs() helper into a header to reuse. BUG=https://code.google.com/p/nativeclient/issues/detail?id=3490 TEST=PNaCl toolchain trybots + GCC torture tests + Spec2k Review URL: https://codereview.chromium.org/17356011
2013-06-24PNaCl ABI: Strip alignment info from memcpy/memmove/memset intrinsic callsMark Seaborn
Do the same for memcpy/memmove/memset intrinsic calls that we have already done for integer loads and stores: Remove assumptions about pointer alignment by setting the alignment argument to 1. Make the ABI checker require this. BUG=https://code.google.com/p/nativeclient/issues/detail?id=3445 TEST=*.ll tests + PNaCl toolchain trybots Review URL: https://codereview.chromium.org/17563008
2013-06-24PNaCl ABI: Disallow built-in multiplication in "alloca" instructionsMark Seaborn
Simplify the set of "alloca" instructions the ABI verifier allows. Before this change, we used i8 arrays, such as: alloca [8 x i8] After this change, we will just use i8 with an explicit size value, so that becomes: alloca i8, i32 8 Allocation of variable-length arrays will require an explicit multiply instruction. This means that the code generator no longer has to handle an implicit multiplication in "alloca", reducing the burden on fast-and-simple code generators a little. This means the PNaCl ABI doesn't need to specify whether alloca's implicit multiplication checks for overflow. This doesn't affect what the backend generates. See lib/CodeGen/SelectionDAG/FunctionLoweringInfo.cpp, which handles constant-size AllocaInsts (by filling out StaticAllocaMap) and which is uses for both -O2 (SelectionDAG) and -O0 (FastISel) translation. BUG=https://code.google.com/p/nativeclient/issues/detail?id=3343 TEST=*.ll tests + PNaCl toolchain trybots Review URL: https://codereview.chromium.org/17631004
2013-06-24Move i32/i64 cttz, ctlz, and ctpop to whitelisted intrinsics.Jan Voung
Disallow the other input types. BUG=https://code.google.com/p/nativeclient/issues/detail?id=3378 R=jfb@chromium.org Review URL: https://codereview.chromium.org/17613002
2013-06-24Merge r179774: Allow misaligned stores in x86 fast-isel.Mark Seaborn
This change will fix the regression in -O0 translation time caused by putting "align 1" on integer loads and stores, which was causing FastISel to fall back to SelectionDAG more often. > In X86FastISel::X86SelectStore(), improperly aligned stores are > rejected and handled by the DAG-based ISel. However, > X86FastISel::X86SelectLoad() makes no such requirement. There > doesn't appear to be an x86 architectural correctness issue with > allowing potentially unaligned store instructions. This patch > removes this restriction. > > Patch by Jim Stichnot. BUG=https://code.google.com/p/nativeclient/issues/detail?id=3445 TEST=PNaCl toolchain trybots Review URL: https://codereview.chromium.org/17575003
2013-06-20PNaCl ABI: Reduce the set of allowed "align" attributes on loads/storesMark Seaborn
Change the ABI verifier to require "align 1" on non-atomic integer accesses to prevent non-portable behaviour. Allow larger alignments on floating point accesses as a concession to performance, because ARM might not be able to do unaligned FP loads/stores efficiently. Change StripAttributes to make pexes pass the ABI verifier. Also update comments in StripAttributes to match some recent changes. BUG=https://code.google.com/p/nativeclient/issues/detail?id=3445 TEST=*.ll tests + PNaCl toolchain trybots Review URL: https://codereview.chromium.org/17094009
2013-06-19PNaCl ABI: Disallow the "externally_initialized" attribute of GlobalVariablesMark Seaborn
BUG=https://code.google.com/p/nativeclient/issues/detail?id=3415 TEST=*.ll tests + PNaCl toolchain trybots Review URL: https://codereview.chromium.org/17470005
2013-06-19Rewrite llvm.flt.rounds to "1" for now, and disallow llvm.flt.rounds.Jan Voung
Until there is an intrinsic to *set* the rounding mode, this intrinsic to *get* the rounding mode isn't so useful. Separately we will add a test that for each platform, the initial rounding mode is "1" (round to nearest). That is the case right now for x86, ARM, and MIPS. (see https://codereview.chromium.org/16785003/) BUG=https://code.google.com/p/nativeclient/issues/detail?id=3491 R=mseaborn@chromium.org Review URL: https://codereview.chromium.org/17229007
2013-06-16PNaCl ABI: Disallow non-default symbol visibility ("hidden" and "protected")Mark Seaborn
BUG=https://code.google.com/p/nativeclient/issues/detail?id=3495 TEST=*.ll tests + PNaCl toolchain trybots Review URL: https://codereview.chromium.org/16903003