Update toolchain revision.

This brings in gcc fixes for __uint128_t 

R=halyavin@google.com

Review URL: https://codereview.chromium.org/22481005

git-svn-id: svn://svn.chromium.org/native_client/trunk/src/native_client@11989 fcba33aa-ac0c-11dd-b9e7-8d5594d729c2
[MIPS] Prevent loading data below NACL_DATA_SEGMENT_START

Change sel_ldr to prevent loading data below NACL_DATA_SEGMENT_START for
MIPS. This is required as MIPS sandboxing rules expect all data to be above
that address. Otherwise, sandbox escape is possible if the code is below
NACL_DATA_SEGMENT_START, in which case nothing prevents user to jump to this
data and execute it.

BUG= data region overlapping with code region
TEST= run examples which have data below NACL_DATA_SEGMENT_START

Review URL: https://chromiumcodereview.appspot.com/20846003

git-svn-id: svn://svn.chromium.org/native_client/trunk/src/native_client@11990 fcba33aa-ac0c-11dd-b9e7-8d5594d729c2
Mark 16-bit atomics test as not broken on x86-32 PNaCl.

I fixed it in a different CL. This can be committed as soon as the DEPS and TOOL_REVISIONS are updated.

R=dschuff@chromium.org
TEST= ./scons run_synchronization_sync_test bitcode=1 platform=x86-32
BUG= https://code.google.com/p/nativeclient/issues/detail?id=3579
BUG= https://code.google.com/p/nativeclient/issues/detail?id=2981
BUG= https://code.google.com/p/nativeclient/issues/detail?id=3475

Review URL: https://codereview.chromium.org/22770002

git-svn-id: svn://svn.chromium.org/native_client/trunk/src/native_client@11991 fcba33aa-ac0c-11dd-b9e7-8d5594d729c2
[MIPS] Add missing .set noreorder to inline assembly

At several places, we missed to set noreorder. The assembly code makes use
of delay slots, so we need to prevent the assembler from reordering the
instructions.

It fixes the following four tests on MIPS:

run_register_set_test
run_exception_test_stack_in_rwdata
run_exception_test
run_stack_alignment_asm_test

BUG= the above tests
TEST= run the above tests

Review URL: https://chromiumcodereview.appspot.com/22535004

git-svn-id: svn://svn.chromium.org/native_client/trunk/src/native_client@11992 fcba33aa-ac0c-11dd-b9e7-8d5594d729c2
Remove lambda from pnacl llvm-nightly expected failures.

It was marked as expected failure because of stdout/stderr
ordering differences vs the native output (and reference).
This is now passes on the bots and shows up as an unexpected
success after 11964 or 11965, and passes locally on linux
precise.

Neither CL seems to be directly trying to fix this test =)
(add IRT interfaces for chdir/mkdir/rmdir, etc, and add
pthread_mutex_timedlock).

BUG=none
R=stichnot@chromium.org

Review URL: https://codereview.chromium.org/22916005

git-svn-id: svn://svn.chromium.org/native_client/trunk/src/native_client@11993 fcba33aa-ac0c-11dd-b9e7-8d5594d729c2
The cause of the failures seems to be some kind of timeout:

command timed out: 1500 seconds without output, attempting to kill

This seems to be a timeout from running 'python llvm-test.py', even though it appears that llvm-test.py runs to conclusion.  (By the way, the original llvm-test.sh script was ignoring the return value of parse_llvm_test_report.py and always returning 0.)

As a shot in the dark, we can try invoking llvm-test.py directly through the shell, rather than explicitly as 'python llvm-test.py'.

Revert "Revert "Allow testing non-default clang/llc optimization settings.""

This reverts commit 0dc085c8e37f83512843d716f9fa6b1f2335755b.

BUG= none
R=dschuff@chromium.org, eliben@chromium.org

Review URL: https://codereview.chromium.org/22824006

git-svn-id: svn://svn.chromium.org/native_client/trunk/src/native_client@11994 fcba33aa-ac0c-11dd-b9e7-8d5594d729c2
Rewrite ValidateAndGetFinalRestrictedRegisters in c.

BUG= https://code.google.com/p/nativeclient/issues/detail?id=3167
TEST= ./scons dfacheckvalidator
R=khim@chromium.org

Review URL: https://codereview.chromium.org/23021004

git-svn-id: svn://svn.chromium.org/native_client/trunk/src/native_client@11995 fcba33aa-ac0c-11dd-b9e7-8d5594d729c2
This changes the invocation of "make check-all" so that 'make' output is echoed to stdout in real time, rather than collecting all stdout and printing it at the end.  Without this, the Windows buildbot detects the lack of output for 1500 seconds as a timeout and tries to kill the script.

It's a separate problem that Cygwin takes 45 minutes to run the LLVM regression tests, versus 2 minutes on Linux.

BUG= none
R=eliben@chromium.org

Review URL: https://codereview.chromium.org/23085003

git-svn-id: svn://svn.chromium.org/native_client/trunk/src/native_client@11996 fcba33aa-ac0c-11dd-b9e7-8d5594d729c2
Remove two Windows "known failures" which are working now.  See practically any recent Windows PNaCl toolchain build.

These have been reported as "unexpected passes" which no one noticed on the bots because llvm-test.{sh,py} was not being run with the '--check-excludes' option that signals failure for both unexpected passes and unexpected failures.

readobj-shared-object.test tests ELF functionality which possibly started working again after the 3.3 merge.

handle-move.ll is a basic optimizer test, and it's unclear why it ever would have been broken specifically for Windows.

BUG= none
R=eliben@chromium.org

Review URL: https://codereview.chromium.org/23115002

git-svn-id: svn://svn.chromium.org/native_client/trunk/src/native_client@11997 fcba33aa-ac0c-11dd-b9e7-8d5594d729c2
Update pnacl llvm revision.

c5b7afc Add NaClBitReader library dependencies to pnacl-freeze.

BUG= https://code.google.com/p/nativeclient/issues/detail?id=3626

Review CL: https://codereview.chromium.org/23072004

R=jvoung@google.com

Review URL: https://codereview.chromium.org/23098002

git-svn-id: svn://svn.chromium.org/native_client/trunk/src/native_client@11998 fcba33aa-ac0c-11dd-b9e7-8d5594d729c2
Another attempt to fix the stuck Win bots, plus debug output.

BUG= none
R=eliben@chromium.org

Review URL: https://codereview.chromium.org/23108006

git-svn-id: svn://svn.chromium.org/native_client/trunk/src/native_client@11999 fcba33aa-ac0c-11dd-b9e7-8d5594d729c2
PNaCl: Update LLVM revision in pnacl/DEPS

This pulls in the following LLVM changes:

b1a2aa7: (jfb@chromium.org) Add pnacl-llc CMake dependency on LLVMNaClTransforms.

BUG=none
TEST=PNaCl toolchain trybots
R=jvoung@chromium.org

Review URL: https://codereview.chromium.org/22908007

git-svn-id: svn://svn.chromium.org/native_client/trunk/src/native_client@12000 fcba33aa-ac0c-11dd-b9e7-8d5594d729c2
Update pnacl llvm revisions.

1e864cc Allow record-level printing by pnacl-bcanalyzer.

Review CL: https://codereview.chromium.org/23060004

BUG= https://code.google.com/p/nativeclient/issues/detail?id=3627
R=jvoung@chromium.org

Review URL: https://codereview.chromium.org/23180003

git-svn-id: svn://svn.chromium.org/native_client/trunk/src/native_client@12001 fcba33aa-ac0c-11dd-b9e7-8d5594d729c2
Add --check-excludes to the LLVM regression test runs.

This lets us catch newly unexpected successes early.  This is the same strategy currently used for running the LLVM test suite.

BUG= none
R=jvoung@chromium.org

Review URL: https://codereview.chromium.org/23164005

git-svn-id: svn://svn.chromium.org/native_client/trunk/src/native_client@12002 fcba33aa-ac0c-11dd-b9e7-8d5594d729c2
Remove call to llvm-dis during pnacl bitcode linking.

When llvm-dis is run on the windows cmd.exe, this takes
~400ms. When run on windows under cygwin it is much faster
(60ms), but we don't know how people will be using the
toolchain. Save some time, since the llvm-dis commands
are run serially on each .o file during linking (not a
problem with .a files).

Previously pnacl-ld and the pnacl-driver (which is more
often used for linking than directly calling pnacl-ld),
would have arbitrary filetype.FileType(f) calls.  The
FileType function would try to distinguish between .po,
.pso, and .pexe by checking LLVM metadata that we had
added to the files.  The metadata is not regularly tested,
so may have bitrotted.  Moreover, pnacl-nativeld no longer
handles -shared and pnacl-translate no longer pulls metadata out for pnacl-nativeld, so this is quite useless now.

Not fully ripping out all the -shared support to keep the
CL small, though it probably hasn't worked for a while.

BUG= http://code.google.com/p/nativeclient/issues/detail?id=3616
R=eliben@chromium.org

Review URL: https://codereview.chromium.org/22877008

git-svn-id: svn://svn.chromium.org/native_client/trunk/src/native_client@12003 fcba33aa-ac0c-11dd-b9e7-8d5594d729c2
Clean up debug print output, add more explanation in comments.

BUG= none
R=eliben@chromium.org

Review URL: https://codereview.chromium.org/23135004

git-svn-id: svn://svn.chromium.org/native_client/trunk/src/native_client@12004 fcba33aa-ac0c-11dd-b9e7-8d5594d729c2
Correct post-commit comment in mutex timedlock test.

Follow-up to: https://codereview.chromium.org/22377004/

R=mseaborn@chromium.org

Review URL: https://codereview.chromium.org/23195003

git-svn-id: svn://svn.chromium.org/native_client/trunk/src/native_client@12005 fcba33aa-ac0c-11dd-b9e7-8d5594d729c2
Add more LLVM optimization combinations to the bots.

The LLVM regression tests are run for both frontend opt levels (O3f and O0f) and both backend opt levels (O2b and O0b), except for Cygwin where each run takes 45 minutes.  This adds 6 minutes to the Linux and Mac builders.

The LLVM test suite is run for one additional configuration (O0f/O0b) for x86 architectures, adding 20 minutes to those builders.  This is white-listed to x86 since arm currently takes 75 minutes for one run.

BUG= none
R=jvoung@chromium.org

Review URL: https://codereview.chromium.org/22802004

git-svn-id: svn://svn.chromium.org/native_client/trunk/src/native_client@12006 fcba33aa-ac0c-11dd-b9e7-8d5594d729c2
Bump archived pnacl frontend and bitcode tests to 11986.

Some of c11 and c++11 scons tests are currently failing.
These depend on newer headers:

errors about ATOMIC_BOOL_LOCK_FREE
errors about no member named 'thread' in namespace 'std'

As well as newer clang and LLVM intrinsics for:

__nacl_atomic_is_lock_free

For the header problem, I thought we could perhaps only
bring in an archived set of clang and LLVM binaries,
and let the headers change, but that doesn't really
reproduce the snapshot of bitcode.  It also doesn't
work because the newer headers require a newer
clang + LLVM to support them.

Perhaps in the future we would label each test as being
supported since NaCl revision N, vs M, and we'd maintain
a list of these revisions for archived frontends.  Or, we
would manually snapshot some bitcode, and everytime we add
a new test or modify a test to have more test cases, we
would need to create a snapshot for the new test by finding
an old archived frontend that supports that particular test,
but that sounds painful too.

BUG=none, red FYI bots
R=jfb@chromium.org

Review URL: https://codereview.chromium.org/22914007

git-svn-id: svn://svn.chromium.org/native_client/trunk/src/native_client@12007 fcba33aa-ac0c-11dd-b9e7-8d5594d729c2
Fix PVS Studio diagnostic.

New can't return NULL, it throws bad_alloc exception instead.

BUG= none
TEST= none
R=mseaborn@chromium.org

Review URL: https://codereview.chromium.org/22897005

git-svn-id: svn://svn.chromium.org/native_client/trunk/src/native_client@12008 fcba33aa-ac0c-11dd-b9e7-8d5594d729c2