clamav/libclamav/c++/llvm/utils/lit/lit.py
Török Edvin d58f4f0a0f Update to LLVM upstream SVN r91214.
Squashed commit of the following:

commit 2fdb8cfc44fb50a50bda26ac7774692a15c00412
Author: Benjamin Kramer <benny.kra@googlemail.com>
Date:   Sat Dec 12 09:25:50 2009 +0000

    Fix some CHECK lines which were ignored by accident.

    git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@91214 91177308-0d34-0410-b5e6-96231b3b80d8

commit cbfd1ed3c3d611d3d36d6853b99f6d615eaf96f1
Author: Jeffrey Yasskin <jyasskin@google.com>
Date:   Sat Dec 12 06:18:46 2009 +0000

    Revert r91208.  Something on Linux prevents the JIT from looking up a symbol
    defined in the test, and I don't have time tonight to figure it out.

    git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@91209 91177308-0d34-0410-b5e6-96231b3b80d8

commit fcfc5e88a362367990b85c708d9656c9e9150f5e
Author: Jeffrey Yasskin <jyasskin@google.com>
Date:   Sat Dec 12 05:58:14 2009 +0000

    Fix available_externally linkage for globals.  It's probably still not
    supported by emitGlobals, but I don't have a test case for that.

    git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@91208 91177308-0d34-0410-b5e6-96231b3b80d8

commit 37fa76624c9c11ec6745b5b609a8b537f0cd8425
Author: Jeffrey Yasskin <jyasskin@google.com>
Date:   Sat Dec 12 04:08:32 2009 +0000

    Make it easier to use the llvm_unreachable and DEBUG macros without "using
    namespace llvm" by qualifying their implementations with ::llvm::.

    git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@91206 91177308-0d34-0410-b5e6-96231b3b80d8

commit 241896971376c9bf4b5856c44c65084c8bf6e3cb
Author: Jim Grosbach <grosbach@apple.com>
Date:   Sat Dec 12 01:40:06 2009 +0000

    Framework for atomic binary operations. The emitter for the pseudo instructions
    just issues an error for the moment. The front end won't yet generate these
    intrinsics for ARM, so this is behind the scenes until complete.

    git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@91200 91177308-0d34-0410-b5e6-96231b3b80d8

commit 4407a9dd3a5829f2385c49b2cdbe96c33076c384
Author: Bob Wilson <bob.wilson@apple.com>
Date:   Fri Dec 11 23:47:40 2009 +0000

    Revise scalar replacement to be more flexible about handle bitcasts and GEPs.
    While scanning through the uses of an alloca, keep track of the current offset
    relative to the start of the alloca, and check memory references to see if
    the offset & size correspond to a component within the alloca.  This has the
    nice benefit of unifying much of the code from isSafeUseOfAllocation,
    isSafeElementUse, and isSafeUseOfBitCastedAllocation.  The code to rewrite
    the uses of a promoted alloca, after it is determined to be safe, is
    reorganized in the same way.

    Also, when rewriting GEP instructions, mark them as "in-bounds" since all the
    indices are known to be safe.

    git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@91184 91177308-0d34-0410-b5e6-96231b3b80d8

commit 552423de4ce3985cee3e44d2b34afc81aef5b5b4
Author: Dan Gohman <gohman@apple.com>
Date:   Fri Dec 11 23:26:08 2009 +0000

    Delete an unnecessary line. The VTSDNode on a SIGN_EXTEND_REG is never
    a vector type.

    git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@91181 91177308-0d34-0410-b5e6-96231b3b80d8

commit f40cec0ee6d37ccce844d771f177f33c929a4b86
Author: Anton Korobeynikov <asl@math.spbu.ru>
Date:   Fri Dec 11 23:01:29 2009 +0000

    Lower setcc branchless, if this is profitable.
    Based on the patch by Brian Lucas!

    git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@91175 91177308-0d34-0410-b5e6-96231b3b80d8

commit 3dd8cadf857bd134ef24aebb48aa22278cedaff1
Author: Bill Wendling <isanbard@gmail.com>
Date:   Fri Dec 11 21:47:36 2009 +0000

    Don't try to move a MBB into the fall-through position if it's a landing pad or
    branches only to a landing pad. Without this check, the compiler would go into
    an infinite loop because the branch to a landing pad is an "abnormal" edge which
    wasn't being taken into account.

    This is the meat of that fix:

      if (!PrevBB.canFallThrough() && !MBB->BranchesToLandingPad(MBB)) {

    The other stuff is simplification of the "branches to a landing pad" code.

    git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@91161 91177308-0d34-0410-b5e6-96231b3b80d8

commit b9f2c6bf74e416fb21026ef9c779c6c4cdbce9d4
Author: Devang Patel <dpatel@apple.com>
Date:   Fri Dec 11 21:37:07 2009 +0000

    Construct CompileUnits lazily.

    git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@91159 91177308-0d34-0410-b5e6-96231b3b80d8

commit 9d501bd6024424a0d85836f2e61a5fcd3f717d23
Author: Dan Gohman <gohman@apple.com>
Date:   Fri Dec 11 21:31:27 2009 +0000

    Implement vector widening, splitting, and scalarizing for SIGN_EXTEND_INREG.

    git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@91158 91177308-0d34-0410-b5e6-96231b3b80d8

commit c6095894e7cd3c7144575ba6e2596bb5a3d3adc0
Author: Jim Grosbach <grosbach@apple.com>
Date:   Fri Dec 11 20:29:53 2009 +0000

    memory barrier instructions by definition have side effects. This prevents the post-RA scheduler from moving them around.

    git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@91150 91177308-0d34-0410-b5e6-96231b3b80d8

commit 432c8afd5e7ab193fbf348436da8c4d88a780f93
Author: Dan Gohman <gohman@apple.com>
Date:   Fri Dec 11 20:09:21 2009 +0000

    Change this to the correct PR number.

    git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@91148 91177308-0d34-0410-b5e6-96231b3b80d8

commit 10ef46f126972755ae7dac376fc98f26ddd31dfc
Author: Dan Gohman <gohman@apple.com>
Date:   Fri Dec 11 20:05:23 2009 +0000

    Make getUniqueExitBlocks's precondition assert more precise, to
    avoid spurious failures. This fixes PR5758.

    git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@91147 91177308-0d34-0410-b5e6-96231b3b80d8

commit 2c4c4dc0dc9c48f7ec593798916cab05c68ec44b
Author: Dan Gohman <gohman@apple.com>
Date:   Fri Dec 11 19:50:50 2009 +0000

    Fix the result type of SELECT nodes lowered from Select instructions with
    aggregate return values. This fixes PR5754.

    git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@91145 91177308-0d34-0410-b5e6-96231b3b80d8

commit 7767af5f34dccb5d093cd46004f2f2687095019c
Author: Anton Korobeynikov <asl@math.spbu.ru>
Date:   Fri Dec 11 19:39:55 2009 +0000

    Honour setHasCalls() set from isel.
    This is used in some weird cases like general dynamic TLS model.
    This fixes PR5723

    git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@91144 91177308-0d34-0410-b5e6-96231b3b80d8

commit 7e6324988a184400c4a79d684746f91c3c5bfad3
Author: Johnny Chen <johnny.chen@apple.com>
Date:   Fri Dec 11 19:37:26 2009 +0000

    Store Register Exclusive should leave the source register Inst{3-0} unspecified.

    git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@91143 91177308-0d34-0410-b5e6-96231b3b80d8

commit 7853967b2bec37e6093fa595cc42aabbad964059
Author: Jim Grosbach <grosbach@apple.com>
Date:   Fri Dec 11 18:52:41 2009 +0000

    Update properties.

    git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@91140 91177308-0d34-0410-b5e6-96231b3b80d8

commit efa9046e1673863e2b091556e5c92b834cc4bdf5
Author: Gabor Greif <ggreif@gmail.com>
Date:   Fri Dec 11 15:30:07 2009 +0000

    Simplify this class by removing the result cache.

    This change removes the DefaultConstructible
    and CopyAssignable constraints on the template
    parameter T (the first one).

    The second template parameter (R) is defaulted to be
    identical to the first and controls the result type.
    By specifying it to be (const T&) additionally the
    CopyConstructible constraint on T can be removed.

    This allows to use StringSwitch e.g. for llvm::Constant
    instances.

    Regarding the other review feedback regarding performance
    because of taking pointers, this class should be completely
    optimizable like before, since all methods are inline and
    the pointer dereferencing and result value caching should be
    possible behind the scenes by the "as-if" rule.

    git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@91123 91177308-0d34-0410-b5e6-96231b3b80d8

commit 624ebdda54ecb7db70ffb105148e68dd34940f8e
Author: Bill Wendling <isanbard@gmail.com>
Date:   Fri Dec 11 10:43:41 2009 +0000

    Revert part of r91101 which was causing an infinite loop in the self-hosting
    build bots.

    git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@91113 91177308-0d34-0410-b5e6-96231b3b80d8

commit 9039ae61fdf29b92f04b84e85c13d0119fa39268
Author: Duncan Sands <baldrick@free.fr>
Date:   Fri Dec 11 08:36:17 2009 +0000

    Add utility method for determining whether a function argument
    has the 'nest' attribute.

    git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@91109 91177308-0d34-0410-b5e6-96231b3b80d8

commit b880e97295cce0cffac154c7643945435cede34d
Author: Evan Cheng <evan.cheng@apple.com>
Date:   Fri Dec 11 06:02:21 2009 +0000

    Tests for 91103 and 91104.

    git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@91105 91177308-0d34-0410-b5e6-96231b3b80d8

commit f031da831176f05449c6c0dd32f45f2fca403f2d
Author: Evan Cheng <evan.cheng@apple.com>
Date:   Fri Dec 11 06:01:48 2009 +0000

    Add support to 3-addressify 16-bit instructions.

    git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@91104 91177308-0d34-0410-b5e6-96231b3b80d8

commit f486334d5c3e5d686f35f5fb9594842a76596496
Author: Evan Cheng <evan.cheng@apple.com>
Date:   Fri Dec 11 06:01:00 2009 +0000

    Coalesce insert_subreg undef, x first to avoid phase ordering issue.

    git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@91103 91177308-0d34-0410-b5e6-96231b3b80d8

commit 4d2fd87d90f53f74faab9b231809bad929ffdf28
Author: Bill Wendling <isanbard@gmail.com>
Date:   Fri Dec 11 03:14:18 2009 +0000

    Address comments on last patch:

    - Loosen the restrictions when checking of it branches to a landing pad.
    - Make the loop more efficient by checking the '.insert' return value.
    - Do cheaper checks first.

    git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@91101 91177308-0d34-0410-b5e6-96231b3b80d8

commit 573d1d59306f14c74a519b77e1d677e9a6df3a65
Author: Bill Wendling <isanbard@gmail.com>
Date:   Fri Dec 11 01:49:14 2009 +0000

    A machine basic block may end in an unconditional branch, however it may have
    more than one successor. Normally, these extra successors are dead. However,
    some of them may branch to exception handling landing pads. If we remove those
    successors, then the landing pads could go away if all predecessors to it are
    removed. Before, it was checking if the direct successor was the landing
    pad. But it could be the result of jumping through multiple basic blocks to get
    to it. If we were to only check for the existence of an EH_LABEL in the basic
    block and not remove successors if it's in there, then it could stop actually
    dead basic blocks from being removed.

    git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@91092 91177308-0d34-0410-b5e6-96231b3b80d8

commit 437d699dc2b7e690254435cb93d7bbd21bb88217
Author: Jim Grosbach <grosbach@apple.com>
Date:   Fri Dec 11 01:42:04 2009 +0000

    Rough first pass at compare_and_swap atomic builtins for ARM mode. Work in progress.

    git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@91090 91177308-0d34-0410-b5e6-96231b3b80d8

commit 307e718947561a527c51e03e38cd77ca1efc6998
Author: Anders Carlsson <andersca@mac.com>
Date:   Fri Dec 11 01:04:42 2009 +0000

    Add qualifiers for calls to member functions in dependent bases.

    git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@91087 91177308-0d34-0410-b5e6-96231b3b80d8

commit 6d47963bc2b99fc828e706072d94b4faab5c6703
Author: Devang Patel <dpatel@apple.com>
Date:   Thu Dec 10 23:25:41 2009 +0000

    If VariableDIe is not created (may be because global was optimzed away) then do not try to use the variable die.

    git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@91077 91177308-0d34-0410-b5e6-96231b3b80d8

commit fcd3705bd25d9e1406adc67a11b200f8454d840e
Author: Eric Christopher <echristo@apple.com>
Date:   Thu Dec 10 21:11:40 2009 +0000

    Add a test for the fix in revision 91009.

    git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@91062 91177308-0d34-0410-b5e6-96231b3b80d8

commit fda100228c44e2ce87a2059d879c3da7f6cf043d
Author: Evan Cheng <evan.cheng@apple.com>
Date:   Thu Dec 10 20:59:45 2009 +0000

    It's not safe to coalesce a move where src and dst registers have different subregister indices. e.g.:
    %reg16404:1<def> = MOV8rr %reg16412:2<kill>

    git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@91061 91177308-0d34-0410-b5e6-96231b3b80d8

commit 8d73e4308d9773535794f2f00ea213981310a6ba
Author: Douglas Gregor <doug.gregor@gmail.com>
Date:   Thu Dec 10 19:52:22 2009 +0000

    Remove a broken, unused header

    git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@91058 91177308-0d34-0410-b5e6-96231b3b80d8

commit 1a8f9a8322f0de194328f3ab2cbf941504015f5f
Author: Devang Patel <dpatel@apple.com>
Date:   Thu Dec 10 19:14:49 2009 +0000

    Refactor code that finds context for a given die.
    Create global variable DIEs after creating subprogram DIEs. This allows function level static variable's to find their context at the time of DIE creation.

    git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@91055 91177308-0d34-0410-b5e6-96231b3b80d8

commit 37582c3385a5259c279f4da155b7659f4272ff71
Author: Jim Grosbach <grosbach@apple.com>
Date:   Thu Dec 10 18:35:32 2009 +0000

    Add instruction encoding for DMB/DSB

    git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@91053 91177308-0d34-0410-b5e6-96231b3b80d8

commit 7f139c19245027f4f367bf09db322e16ceca76f5
Author: Devang Patel <dpatel@apple.com>
Date:   Thu Dec 10 18:05:33 2009 +0000

    Refactor.

    git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@91051 91177308-0d34-0410-b5e6-96231b3b80d8

commit a0f793a956a6aeff1386647a714c627102bfdc88
Author: Jakob Stoklund Olesen <stoklund@2pi.dk>
Date:   Thu Dec 10 17:48:32 2009 +0000

    Also attempt trivial coalescing for live intervals that end in a copy.

    The coalescer is supposed to clean these up, but when setting up parameters
    for a function call, there may be copies to physregs. If the defining
    instruction has been LICM'ed far away, the coalescer won't touch it.

    The register allocation hint does not always work - when the register
    allocator is backtracking, it clears the hints.

    This patch is more conservative than r90502, and does not break
    483.xalancbmk/i686. It still breaks the PowerPC bootstrap, so it is disabled
    by default, and can be enabled with the -trivial-coalesce-ends option.

    git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@91049 91177308-0d34-0410-b5e6-96231b3b80d8

commit 6d9ba4b1d7364823556c97a78142ecd28048e3a3
Author: Edwin Török <edwintorok@gmail.com>
Date:   Thu Dec 10 10:01:47 2009 +0000

    Comparing std::string with NULL is a bad idea, so just check whether its empty.

    This code was crashing always with oprofile enabled, since it tried to create a StringRef
    out of NULL, which run strlen on NULL.

    git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@91046 91177308-0d34-0410-b5e6-96231b3b80d8

commit a4ea68be726443c35446332dbdeff00f42f7e48b
Author: Eric Christopher <echristo@apple.com>
Date:   Thu Dec 10 00:25:41 2009 +0000

    Make sure the immediate dominator isn't NULL through iterations
    of the loop. We could get to this condition via indirect
    branches.

    git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@91009 91177308-0d34-0410-b5e6-96231b3b80d8

commit c97c9a0f7c7aa3572a819aef0315a6ddb7a2dfe8
Author: Chris Lattner <sabre@nondot.org>
Date:   Thu Dec 10 00:11:45 2009 +0000

    Fix PR5744, a case where we were getting the pointer size instead of the
    value size.  This only manifested when memdep inprecisely returns clobber,
    which is do to a caching issue in the PR5744 testcase.  We can 'efficiently
    emulate' this by using '-no-aa'

    git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@91004 91177308-0d34-0410-b5e6-96231b3b80d8

commit ba744f662e83517b2b940145a24d6cbb453f52f9
Author: Jim Grosbach <grosbach@apple.com>
Date:   Thu Dec 10 00:11:09 2009 +0000

    Add memory barrier intrinsic support for ARM. Moving towards adding the atomic operations intrinsics.

    git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@91003 91177308-0d34-0410-b5e6-96231b3b80d8

commit e559e790ba60791726da785535d194ca71f47dee
Author: Chris Lattner <sabre@nondot.org>
Date:   Thu Dec 10 00:04:46 2009 +0000

    allow this to build when the #if 0's are enabled.  No functionality change.

    git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@90999 91177308-0d34-0410-b5e6-96231b3b80d8

commit 6ab68f2d2516ed58e49016dfca15e2ad4bc865e6
Author: Dan Gohman <gohman@apple.com>
Date:   Wed Dec 9 22:55:01 2009 +0000

    Dereference loopHeader after checking for null rather than before.

    git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@90990 91177308-0d34-0410-b5e6-96231b3b80d8

commit 5252e89c88fc55ce4b4842b600031f6ca536dc5d
Author: Evan Cheng <evan.cheng@apple.com>
Date:   Wed Dec 9 22:24:42 2009 +0000

    Fix test.

    git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@90988 91177308-0d34-0410-b5e6-96231b3b80d8

commit e31a26af8b770854d3a630081e74ee52899482b4
Author: Evan Cheng <evan.cheng@apple.com>
Date:   Wed Dec 9 21:00:30 2009 +0000

    Optimize splat of a scalar load into a shuffle of a vector load when it's legal. e.g.
    vector_shuffle (scalar_to_vector (i32 load (ptr + 4))), undef, <0, 0, 0, 0>
    =>
    vector_shuffle (v4i32 load ptr), undef, <1, 1, 1, 1>

    iff ptr is 16-byte aligned (or can be made into 16-byte aligned).

    git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@90984 91177308-0d34-0410-b5e6-96231b3b80d8

commit eef9c8f43d719d072f7f027510125f45a0e02956
Author: Dan Gohman <gohman@apple.com>
Date:   Wed Dec 9 18:48:53 2009 +0000

    Reuse the Threshold value to size these containers because it's
    currently somewhat convenient for them to have the same value.

    git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@90980 91177308-0d34-0410-b5e6-96231b3b80d8

commit fe0be137457e5a2fe51000ed2844f888e9e19b64
Author: Devang Patel <dpatel@apple.com>
Date:   Wed Dec 9 18:24:21 2009 +0000

    Reapply r90858, a cleanup patch.

    git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@90979 91177308-0d34-0410-b5e6-96231b3b80d8

commit 091a1d20fcf979b5f266fa2b085215bc3bfe2d46
Author: Chris Lattner <sabre@nondot.org>
Date:   Wed Dec 9 18:21:46 2009 +0000

    fix hte last remaining known (by me) phi translation bug.  When we reanalyze
    clobbers to forward pieces of large stores to small loads, we need to consider
    the properly phi translated pointer in the store block.

    git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@90978 91177308-0d34-0410-b5e6-96231b3b80d8

commit 2737cb4b2a2a648f07f3272d932ba564a03a368a
Author: Chris Lattner <sabre@nondot.org>
Date:   Wed Dec 9 18:13:28 2009 +0000

    change GetStoreValueForLoad to use IRBuilder, which is cleaner and
    implicitly constant folds.

    git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@90977 91177308-0d34-0410-b5e6-96231b3b80d8

commit 39d7706d74c6237258b9a78a4aaf841f28c58a1d
Author: Bob Wilson <bob.wilson@apple.com>
Date:   Wed Dec 9 18:05:27 2009 +0000

    Fix a comment.

    git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@90975 91177308-0d34-0410-b5e6-96231b3b80d8

commit 6e4661381e82fb4d6ba33d57155dcda400280d3a
Author: Chris Lattner <sabre@nondot.org>
Date:   Wed Dec 9 17:27:45 2009 +0000

    Add a minor optimization: if we haven't changed the operands of an
    add, there is no need to scan the world to find the same add again.
    This invalidates the previous testcase, which wasn't wonderful anyway,
    because it needed a run of instcombine to permute the use-lists in
    just the right way to before GVN was run (so it was really fragile).
    Not a big loss.

    git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@90973 91177308-0d34-0410-b5e6-96231b3b80d8

commit de76e8dccddd7578a9d52dd04bcf9ca36da417d8
Author: Anton Korobeynikov <asl@math.spbu.ru>
Date:   Wed Dec 9 17:26:02 2009 +0000

    Add note about loadable modules on windows.
    Patch by Gregory Petrosyan!

    git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@90972 91177308-0d34-0410-b5e6-96231b3b80d8

commit 13c6e945a6f59aca2d21b46c036521c59d1f61bc
Author: Chris Lattner <sabre@nondot.org>
Date:   Wed Dec 9 17:18:49 2009 +0000

    fix PR5733, a case where we'd replace an add with a lexically identical
    binary operator that wasn't an add.  In this case, a xor.  Whoops.

    git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@90971 91177308-0d34-0410-b5e6-96231b3b80d8

commit 9b4ae24a6d11afa1453e2cfce2c702316ad7e093
Author: David Goodwin <david_goodwin@apple.com>
Date:   Wed Dec 9 17:18:22 2009 +0000

    <rdar://problem/7453528>. Track only physical registers that are valid for the target.

    git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@90970 91177308-0d34-0410-b5e6-96231b3b80d8

commit e1ab6f944f31f5db68788036bb48cc6fef160be6
Author: Chris Lattner <sabre@nondot.org>
Date:   Wed Dec 9 17:17:26 2009 +0000

    merge crash-2.ll into crash.ll

    git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@90969 91177308-0d34-0410-b5e6-96231b3b80d8

commit 179201113b146232ba8ed6cc32c3b7c1b0cdd481
Author: Eric Christopher <echristo@apple.com>
Date:   Wed Dec 9 08:29:32 2009 +0000

    Silence conversion warning from 64 to 32-bit.

    git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@90962 91177308-0d34-0410-b5e6-96231b3b80d8

commit fd9feaabf12a8dd559794b5a779d12c9a5e9dfa3
Author: Chris Lattner <sabre@nondot.org>
Date:   Wed Dec 9 07:37:07 2009 +0000

    change AnalyzeLoadFromClobberingMemInst/AnalyzeLoadFromClobberingStore
    to require the load ty/ptr to be passed in, no functionality change.

    git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@90960 91177308-0d34-0410-b5e6-96231b3b80d8

commit 598abfd68824c718b392e6da1ff78a278b390bdf
Author: Chris Lattner <sabre@nondot.org>
Date:   Wed Dec 9 07:34:10 2009 +0000

    change AnalyzeLoadFromClobberingWrite and clients to pass in type
    and pointer instead of the load.  No functionality change.

    git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@90959 91177308-0d34-0410-b5e6-96231b3b80d8

commit ca02fc16abf5caf64bf21a3efdad9b52368591c5
Author: Chris Lattner <sabre@nondot.org>
Date:   Wed Dec 9 07:31:04 2009 +0000

    enhance NonLocalDepEntry to keep the per-block phi translated address
    of the query.

    git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@90958 91177308-0d34-0410-b5e6-96231b3b80d8

commit c831c64f16749af9b1a782ace983aee600d59c43
Author: Daniel Dunbar <daniel@zuster.org>
Date:   Wed Dec 9 07:19:48 2009 +0000

    DeltaAlgorithm: Add a virtual destructor and home.

    git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@90957 91177308-0d34-0410-b5e6-96231b3b80d8

commit 1a957967ec0e908f69717c8887d427eeaee8e5fc
Author: Chris Lattner <sabre@nondot.org>
Date:   Wed Dec 9 07:08:01 2009 +0000

    change NonLocalDepEntry from being a typedef for an std::pair to be its
    own small class.  No functionality change.

    git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@90956 91177308-0d34-0410-b5e6-96231b3b80d8

commit 75730ab628f309e281beab31cb081b7487579f6e
Author: Lang Hames <lhames@gmail.com>
Date:   Wed Dec 9 05:39:12 2009 +0000

    Added a new "splitting" spiller.

    When a call is placed to spill an interval this spiller will first try to
    break the interval up into its component values. Single value intervals and
    intervals which have already been split (or are the result of previous splits)
    are spilled by the default spiller.

    Splitting intervals as described above may improve the performance of generated
    code in some circumstances. This work is experimental however, and it still
    miscompiles many benchmarks. It's not recommended for general use yet.

    git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@90951 91177308-0d34-0410-b5e6-96231b3b80d8

commit 22a458ae9214261c3e420910fb22ee81c358395d
Author: Daniel Dunbar <daniel@zuster.org>
Date:   Wed Dec 9 03:26:33 2009 +0000

    Remove spurious extern.

    git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@90937 91177308-0d34-0410-b5e6-96231b3b80d8

commit fd96f3416558738874517ad53b30b0fa13fac75f
Author: Daniel Dunbar <daniel@zuster.org>
Date:   Wed Dec 9 02:58:09 2009 +0000

    Remove unneeded ';' and a class/struct mismatch (noticed by clang).

    git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@90934 91177308-0d34-0410-b5e6-96231b3b80d8

commit 521f16433f6a3ae9e35a47efc577dcb9162a01ef
Author: Chris Lattner <sabre@nondot.org>
Date:   Wed Dec 9 02:43:05 2009 +0000

    the code in GVN that tries to forward large loads to small
    stores is not phi translating, thus it miscompiles really
    crazy testcases.  This is from inspection, I haven't seen
    this in the wild.

    git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@90930 91177308-0d34-0410-b5e6-96231b3b80d8

commit 4c61909de5f6f6a721080017aa11ab846b24bdfb
Author: Chris Lattner <sabre@nondot.org>
Date:   Wed Dec 9 02:41:54 2009 +0000

    add some aborts to #if 0's.

    git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@90929 91177308-0d34-0410-b5e6-96231b3b80d8

commit efff322bd17b640f544a1d28c580b59499a28ff8
Author: Chris Lattner <sabre@nondot.org>
Date:   Wed Dec 9 01:59:31 2009 +0000

    Switch GVN and memdep to use PHITransAddr, which correctly handles
    phi translation of complex expressions like &A[i+1].  This has the
    following benefits:

    1. The phi translation logic is all contained in its own class with
       a strong interface and verification that it is self consistent.

    2. The logic is more correct than before.  Previously, if intermediate
       expressions got PHI translated, we'd miss the update and scan for
       the wrong pointers in predecessor blocks.  @phi_trans2 is a testcase
       for this.

    3. We have a lot less code in memdep.

    We can handle phi translation across blocks of things like @phi_trans3,
    which is pretty insane :).

    This patch should fix the miscompiles of 255.vortex, and I tested it
    with a bootstrap of llvm-gcc, llvm-test and dejagnu of course.

    git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@90926 91177308-0d34-0410-b5e6-96231b3b80d8

commit 76ebe86e74ce108a129259fb52663edb0483da9d
Author: Evan Cheng <evan.cheng@apple.com>
Date:   Wed Dec 9 01:53:58 2009 +0000

    Teach InferPtrAlignment to infer GV+cst alignment and use it to simplify x86 isl lowering code.

    git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@90925 91177308-0d34-0410-b5e6-96231b3b80d8

commit ada03e86adc6f39bc024e7e147f4e8a84929c6b2
Author: Devang Patel <dpatel@apple.com>
Date:   Wed Dec 9 01:46:00 2009 +0000

    Remove tests that are not suitable anymore. Plus they are not testing the original bugfixes anymore. These tests were inserted to check bug fixes in code that handled debug info intrinsics. These intrinsics are no longer used and now llvm parser simply ignores old .dbg intrinsics from these dead tests.

    git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@90923 91177308-0d34-0410-b5e6-96231b3b80d8

commit 1a029cbee8f0bb7d1798aa474bdc46f017ba1871
Author: Evan Cheng <evan.cheng@apple.com>
Date:   Wed Dec 9 01:36:00 2009 +0000

    Move isConsecutiveLoad to SelectionDAG. It's not target dependent and it's primary used by selectdag passes.

    git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@90922 91177308-0d34-0410-b5e6-96231b3b80d8

commit 3b1d6462fe599fc9e17811b2d6bc8fad77183647
Author: Chris Lattner <sabre@nondot.org>
Date:   Wed Dec 9 01:19:16 2009 +0000

    fix a nasty variable that was shadowing the real CurBB but with the wrong value.

    git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@90920 91177308-0d34-0410-b5e6-96231b3b80d8

commit a711e2664a880bc4b941d2690371cf811167bf95
Author: Evan Cheng <evan.cheng@apple.com>
Date:   Wed Dec 9 01:17:24 2009 +0000

    Infer alignment for non-fixed stack object.

    git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@90919 91177308-0d34-0410-b5e6-96231b3b80d8

commit d3caa135e4a12b56cf586dc4d2a3d89d821b2f46
Author: Evan Cheng <evan.cheng@apple.com>
Date:   Wed Dec 9 01:10:37 2009 +0000

    Add const qualifier.

    git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@90918 91177308-0d34-0410-b5e6-96231b3b80d8

commit 684647dabc65cd039ddd73daf25112d1b6a98072
Author: Evan Cheng <evan.cheng@apple.com>
Date:   Wed Dec 9 01:04:59 2009 +0000

    Refactor InferAlignment out of DAGCombine.

    git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@90917 91177308-0d34-0410-b5e6-96231b3b80d8

commit a3d7e0b6f0723224cf9db5b12d41d0bc82948782
Author: Chris Lattner <sabre@nondot.org>
Date:   Wed Dec 9 00:56:14 2009 +0000

    fix many input tracking bugs.

    git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@90915 91177308-0d34-0410-b5e6-96231b3b80d8

commit cb8c775db77dfe0194a6169f437342eacaa46792
Author: Chris Lattner <sabre@nondot.org>
Date:   Wed Dec 9 00:41:28 2009 +0000

    when opt crashes, print its command line arguments as a pretty stack trace.
    Somehow opt was missed when this was added.

    git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@90912 91177308-0d34-0410-b5e6-96231b3b80d8

commit aa30b76c39c82f6e0973d597511c9a6980a914d4
Author: Dan Gohman <gohman@apple.com>
Date:   Wed Dec 9 00:28:42 2009 +0000

    Fix a typo in a comment, and adjust SmallSet and SmallVector sizes,
    that Chris noticed.

    git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@90910 91177308-0d34-0410-b5e6-96231b3b80d8

commit 604d78539ab4276a96f99287599fe6b341707dc0
Author: Chris Lattner <sabre@nondot.org>
Date:   Wed Dec 9 00:18:13 2009 +0000

    fix PHI  translation to take the PHI out of the instinputs set and add
    the translated value back to it if an instruction.

    git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@90909 91177308-0d34-0410-b5e6-96231b3b80d8

commit 67f80492b9822f893a83641bb204d81e916f8d3e
Author: Chris Lattner <sabre@nondot.org>
Date:   Wed Dec 9 00:10:55 2009 +0000

    instructions defined in CurBB may be intermediate nodes of the computation.

    git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@90908 91177308-0d34-0410-b5e6-96231b3b80d8

commit 7bc7cb6375e49b89417a44bddad4300ec5b2c5ea
Author: Chris Lattner <sabre@nondot.org>
Date:   Wed Dec 9 00:01:00 2009 +0000

    add dumping and sanity checking support.

    git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@90906 91177308-0d34-0410-b5e6-96231b3b80d8

commit 096cad10650493a4addf69d3bdf81f2e2c38d943
Author: Dan Gohman <gohman@apple.com>
Date:   Tue Dec 8 23:59:12 2009 +0000

    Put a threshold on the number of users PointerMayBeCaptured
    examines; fall back to a conservative answer if there are
    more. This works around some several compile time problems
    resulting from BasicAliasAnalysis calling PointerMayBeCaptured.

    The value has been chosen arbitrarily.

    This fixes rdar://7438917 and may partially address PR5708.

    git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@90905 91177308-0d34-0410-b5e6-96231b3b80d8

commit c88612dd681daa28178107881b0526b5ad4b0d1c
Author: Chris Lattner <sabre@nondot.org>
Date:   Tue Dec 8 23:42:51 2009 +0000

    make sure that PHITransAddr keeps its 'InstInputs' list up to
    date when instsimplify kicks in.

    git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@90901 91177308-0d34-0410-b5e6-96231b3b80d8

commit de2d3688d9711628c15ee2b8410fa3e936ca698c
Author: Devang Patel <dpatel@apple.com>
Date:   Tue Dec 8 23:21:45 2009 +0000

    Revert 90858 90875 and 90805 for now.

    git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@90898 91177308-0d34-0410-b5e6-96231b3b80d8

commit 9e5c8a8cdfc3a0267b026851bf08a9507474578e
Author: Evan Cheng <evan.cheng@apple.com>
Date:   Tue Dec 8 23:06:22 2009 +0000

    - Support inline asm 'w' constraint for 128-bit vector types.
    - Also support the 'q' NEON registers asm code.

    git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@90894 91177308-0d34-0410-b5e6-96231b3b80d8

commit 1d9aeda1a20c306e7639e6df6613d570e793ab00
Author: Daniel Dunbar <daniel@zuster.org>
Date:   Tue Dec 8 19:49:30 2009 +0000

    lit: Prevent crash-on-invalid (when run on directory which has no test suite).

    git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@90871 91177308-0d34-0410-b5e6-96231b3b80d8

commit bb331cbe3eb64ba46f885189aa8797c3027a69ea
Author: Daniel Dunbar <daniel@zuster.org>
Date:   Tue Dec 8 19:48:01 2009 +0000

    Set svn:ignore on tools/clang.

    git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@90870 91177308-0d34-0410-b5e6-96231b3b80d8

commit 58c778873ae2dac1a1c615bf4cab3cd788ec4db9
Author: Daniel Dunbar <daniel@zuster.org>
Date:   Tue Dec 8 19:47:36 2009 +0000

    CMake/lit: Add llvm_{unit_,}site_config parameters, and always pass them when running tests from the project files.

    git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@90869 91177308-0d34-0410-b5e6-96231b3b80d8

commit 6e56790b2a9d8fbdbbcba5750f646488f1073d9f
Author: Evan Cheng <evan.cheng@apple.com>
Date:   Tue Dec 8 19:34:53 2009 +0000

    Revert 90789 for now. It caused massive compile time regression. Post-ra scheduler slowed down dramatically with this.

    git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@90868 91177308-0d34-0410-b5e6-96231b3b80d8

commit d11c2b3c143afb32f32fcc203190454a63fdd0c1
Author: Bob Wilson <bob.wilson@apple.com>
Date:   Tue Dec 8 18:27:03 2009 +0000

    Some superficial cleanups.

    git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@90866 91177308-0d34-0410-b5e6-96231b3b80d8

commit bb4b0d5499b3b7095b560734f1b47d26187ce644
Author: Bob Wilson <bob.wilson@apple.com>
Date:   Tue Dec 8 18:22:03 2009 +0000

    Clean up dead operands left around after SROA replaces a mem intrinsic.
    I'm not aware that this does anything significant on its own, but it's
    needed for another patch that I'm working on.

    git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@90864 91177308-0d34-0410-b5e6-96231b3b80d8

commit 7b294d7538f15995e446a6a2dd17965813133cc0
Author: Devang Patel <dpatel@apple.com>
Date:   Tue Dec 8 15:31:31 2009 +0000

    Cleanup.
    There is no need to supply ModuleCU to addType() as a parameter.

    git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@90858 91177308-0d34-0410-b5e6-96231b3b80d8

commit 23a55d34fc5a37cc60122ac3db057177f91e2528
Author: Devang Patel <dpatel@apple.com>
Date:   Tue Dec 8 15:01:35 2009 +0000

    Do not try to push dead variable's debug info into namespace info.

    git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@90857 91177308-0d34-0410-b5e6-96231b3b80d8

commit f8bbaf864380c3d5ea1c21d4fade7cb22fcced25
Author: Benjamin Kramer <benny.kra@googlemail.com>
Date:   Tue Dec 8 13:07:38 2009 +0000

    Remove useless calls to c_str().

    git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@90855 91177308-0d34-0410-b5e6-96231b3b80d8

commit 35138e397b334bffa8f1c9121fa97f9129880d09
Author: Duncan Sands <baldrick@free.fr>
Date:   Tue Dec 8 10:10:20 2009 +0000

    Teach GlobalOpt to delete aliases with internal linkage (after
    forwarding any uses).  GlobalDCE can also do this, but is only
    run at -O3.

    git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@90850 91177308-0d34-0410-b5e6-96231b3b80d8

commit 3147011bdf615c47e44b7ffbc5e94263d42aa6ed
Author: Chris Lattner <sabre@nondot.org>
Date:   Tue Dec 8 06:06:26 2009 +0000

    fix a typo (and -> add) and fix GetAvailablePHITranslatedSubExpr to not
    side-effect the current object.

    git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@90837 91177308-0d34-0410-b5e6-96231b3b80d8

commit 54518e654b0b98ffeefec0b0958500883ba2832a
Author: Nick Lewycky <nicholas@mxc.ca>
Date:   Tue Dec 8 05:45:41 2009 +0000

    Remove unnecessary #include "llvm/LLVMContext.h".

    git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@90836 91177308-0d34-0410-b5e6-96231b3b80d8

commit 48df1cc8234d91de705451688bb54bbbe161d51a
Author: Chris Lattner <sabre@nondot.org>
Date:   Tue Dec 8 05:31:46 2009 +0000

    whitespace cleanup

    git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@90834 91177308-0d34-0410-b5e6-96231b3b80d8

commit 62d57ae9ef18b9cfaa8c3a977db1ed31694a03d5
Author: Oscar Fuentes <ofv@wanadoo.es>
Date:   Tue Dec 8 02:49:54 2009 +0000

    Removed VC++ compatibility code from DataTypes.h.in.

    This header file is not used on VC++ builds.

    git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@90829 91177308-0d34-0410-b5e6-96231b3b80d8

commit da3ef8a038a93fa4b4879fd203abd2f9377ab977
Author: Oscar Fuentes <ofv@wanadoo.es>
Date:   Tue Dec 8 02:40:09 2009 +0000

    For VC++, define the ?INT*_C macros only it they are not yet defined.

    Some compatibility updates like the Boost TR1 compatibility headers
    define them.

    Patch contributed by OvermindDL1!

    git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@90828 91177308-0d34-0410-b5e6-96231b3b80d8

commit 3caef71dd23157310e52ed947a2fb44579f79db3
Author: Anton Korobeynikov <asl@math.spbu.ru>
Date:   Tue Dec 8 01:03:04 2009 +0000

    Reduce (cmp 0, and_su (foo, bar)) into (bit foo, bar). This saves extra instruction. Patch inspired by Brian Lucas!

    git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@90819 91177308-0d34-0410-b5e6-96231b3b80d8

commit 9688c52873170b7096ec6f7e13ddea8cb13ca6d8
Author: Evan Cheng <evan.cheng@apple.com>
Date:   Mon Dec 7 23:11:03 2009 +0000

    Watch out for duplicated PHI instructions.

    git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@90816 91177308-0d34-0410-b5e6-96231b3b80d8

commit cb900da68f1eef3242a89e4f3f2078bbccb093b3
Author: Evan Cheng <evan.cheng@apple.com>
Date:   Mon Dec 7 23:10:34 2009 +0000

    Follow up to 90488. Turn a check into an assertion.

    git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@90815 91177308-0d34-0410-b5e6-96231b3b80d8

commit d5d28ebb4b6d5cf3f6b15f0a1be3e3e82816b03b
Author: Jeffrey Yasskin <jyasskin@google.com>
Date:   Mon Dec 7 22:32:38 2009 +0000

    Fix the OProfileJITEventListener for StringRef being returned from debug info.

    git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@90813 91177308-0d34-0410-b5e6-96231b3b80d8

commit 9a8b457e8247f989a5d6d19468fc23e7e48a7118
Author: Victor Hernandez <vhernandez@apple.com>
Date:   Mon Dec 7 21:54:43 2009 +0000

    Rename DIFactory::InsertValue() as DIFactory::InsertDbgValueIntrinsic()

    git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@90807 91177308-0d34-0410-b5e6-96231b3b80d8

commit 641f820036ddf1823bf6b175f4bab0034749b537
Author: Devang Patel <dpatel@apple.com>
Date:   Mon Dec 7 21:41:32 2009 +0000

    Add support to emit debug info for c++ style namespaces.

    git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@90805 91177308-0d34-0410-b5e6-96231b3b80d8

commit 03cbedef57d2f8bba7823df2f17ffc29e089ba43
Author: Evan Cheng <evan.cheng@apple.com>
Date:   Mon Dec 7 21:19:33 2009 +0000

    Delete code accidentally left behind.

    git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@90804 91177308-0d34-0410-b5e6-96231b3b80d8

commit b0f617ce7b174a87c19e6f21bcadecc68654ff38
Author: Chris Lattner <sabre@nondot.org>
Date:   Mon Dec 7 19:52:57 2009 +0000

    fix typo

    git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@90793 91177308-0d34-0410-b5e6-96231b3b80d8

commit 78a0c48a34b4ae0f766bc94e841018cd9d3557ae
Author: Chris Lattner <sabre@nondot.org>
Date:   Mon Dec 7 19:45:30 2009 +0000

    add accessor, improve comment.

    git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@90792 91177308-0d34-0410-b5e6-96231b3b80d8

commit 0ef78de4b1c6169cbee2671bbe2a4291d21231cf
Author: Evan Cheng <evan.cheng@apple.com>
Date:   Mon Dec 7 19:42:22 2009 +0000

    Test case for 90787.

    git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@90791 91177308-0d34-0410-b5e6-96231b3b80d8

commit ef778032ceda17e7b5209045d28761c5190b5730
Author: David Greene <greened@obbligato.org>
Date:   Mon Dec 7 19:40:26 2009 +0000

    Use FileCheck and set nounwind on calls.

    git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@90790 91177308-0d34-0410-b5e6-96231b3b80d8

commit 654f5abad31952e2e447a598635ba9ce3a582a45
Author: Dan Gohman <gohman@apple.com>
Date:   Mon Dec 7 19:38:26 2009 +0000

    Apply Pekka Jääskeläinen's patch to raise the first virtual register
    number in order to accomodate targets with more than 1024 registers.

    git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@90789 91177308-0d34-0410-b5e6-96231b3b80d8

commit f2379900d4ebb0568cc18e7102f1d3567f2fabea
Author: Victor Hernandez <vhernandez@apple.com>
Date:   Mon Dec 7 19:36:34 2009 +0000

    Introduce the "@llvm.dbg.value" debug intrinsic.

    The semantics of llvm.dbg.value are that starting from where it is executed, an offset into the specified user source variable is specified to get a new value.

    An example:
      call void @llvm.dbg.value(metadata !{ i32 7 }, i64 0, metadata !2)
    Here the user source variable associated with metadata #2 gets the value "i32 7" at offset 0.

    git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@90788 91177308-0d34-0410-b5e6-96231b3b80d8

commit 6fc593ad30a6640abdcd0e27aefcfae35eb874f5
Author: Mikhail Glushenkov <foldr@codedgers.com>
Date:   Mon Dec 7 19:16:13 2009 +0000

    Simplify a bit.

    git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@90785 91177308-0d34-0410-b5e6-96231b3b80d8

commit 43f5c616b9938842aebaa8de4451aca52c408f04
Author: Mikhail Glushenkov <foldr@codedgers.com>
Date:   Mon Dec 7 19:15:57 2009 +0000

    Throw 'const char*' instead of 'std::string'.

    git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@90784 91177308-0d34-0410-b5e6-96231b3b80d8

commit 726e81006a54d5ee21372b593b6d0aebed32eade
Author: Chris Lattner <sabre@nondot.org>
Date:   Mon Dec 7 19:04:49 2009 +0000

    add support for phi translation and incorpation of new expression.

    git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@90782 91177308-0d34-0410-b5e6-96231b3b80d8

commit ad1cc9c85c6ebd136855b133cfa0397741c2dcbf
Author: Dan Gohman <gohman@apple.com>
Date:   Mon Dec 7 19:04:31 2009 +0000

    Don't enable the post-RA scheduler on x86 except at -O3. In its
    current form, it is too expensive in compile time.

    git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@90781 91177308-0d34-0410-b5e6-96231b3b80d8

commit a3fce13cb0bd4c4afcf1c28f788a398df6a560dc
Author: Chris Lattner <sabre@nondot.org>
Date:   Mon Dec 7 18:36:53 2009 +0000

    checkpoint of the new PHITransAddr code, still not done and not used by
    anything.

    git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@90779 91177308-0d34-0410-b5e6-96231b3b80d8

commit e420496fa6dc7f2aa0cbec0a37f61197e5b402bc
Author: Mikhail Glushenkov <foldr@codedgers.com>
Date:   Mon Dec 7 18:26:24 2009 +0000

    Regenerate.

    git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@90776 91177308-0d34-0410-b5e6-96231b3b80d8

commit b045d745c550cdd03ae35f9ea4a9e325cbd50bbb
Author: Mikhail Glushenkov <foldr@codedgers.com>
Date:   Mon Dec 7 18:26:11 2009 +0000

    Documentation update.

    git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@90775 91177308-0d34-0410-b5e6-96231b3b80d8

commit 6b292727d8198ca5f85d501a741cb9e69f611038
Author: Mikhail Glushenkov <foldr@codedgers.com>
Date:   Mon Dec 7 18:25:54 2009 +0000

    Deprecate 'unpack_values'.

    Use 'forward_values' + 'comma_separated' instead.

    git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@90774 91177308-0d34-0410-b5e6-96231b3b80d8

commit 4b6e9d258dcb26f889bfd4c5c0139bfea7421b19
Author: Mikhail Glushenkov <foldr@codedgers.com>
Date:   Mon Dec 7 17:03:21 2009 +0000

    Pass '-msse' and friends to llc as '-mattr=+/-'.

    git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@90771 91177308-0d34-0410-b5e6-96231b3b80d8

commit f77867899cf80b436831429e58bac1f6a1ae66a1
Author: Mikhail Glushenkov <foldr@codedgers.com>
Date:   Mon Dec 7 17:03:05 2009 +0000

    Implement 'forward_value' and 'forward_transformed_value'.

    git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@90770 91177308-0d34-0410-b5e6-96231b3b80d8

commit 1d52e693236fe83a47e438438a186d337f149ab0
Author: Mikhail Glushenkov <foldr@codedgers.com>
Date:   Mon Dec 7 10:51:55 2009 +0000

    Refactoring, no functionality change.

    git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@90764 91177308-0d34-0410-b5e6-96231b3b80d8

commit c02f3dca734ac6709bf51d5768ed7b3f97b4a9e7
Author: Evan Cheng <evan.cheng@apple.com>
Date:   Mon Dec 7 10:15:19 2009 +0000

    Pre-regalloc tale duplication. Work in progress.

    git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@90759 91177308-0d34-0410-b5e6-96231b3b80d8

commit 768358c2b996a799013fb0caa691ffe3b4f6e950
Author: John Mosby <ojomojo@gmail.com>
Date:   Mon Dec 7 09:06:37 2009 +0000

    fixed some typos in method comments, reworded some comments for clarity

    git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@90754 91177308-0d34-0410-b5e6-96231b3b80d8

commit 4aafc85f5a94802c121050ec113973249e295577
Author: Oscar Fuentes <ofv@wanadoo.es>
Date:   Mon Dec 7 05:29:59 2009 +0000

    Fixes the Atomic implementation if compiled by MSVC compiler.

    sys::cas_flag should be long on this platform, InterlockedAdd() is
    defined only for the Itanium architecture (according to MSDN).

    Patch by Michael Beck!

    git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@90748 91177308-0d34-0410-b5e6-96231b3b80d8

commit 18552eb96f80811caa9f48141219ebeb2eadc5b3
Author: Evan Cheng <evan.cheng@apple.com>
Date:   Mon Dec 7 03:07:01 2009 +0000

    If BB is empty, insert PHI before end() instead of front().

    git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@90744 91177308-0d34-0410-b5e6-96231b3b80d8

commit e7fb83a04b4c05856465db53ad0981a8db72265c
Author: Anton Korobeynikov <asl@math.spbu.ru>
Date:   Mon Dec 7 02:28:41 2009 +0000

    Some pretty-printing

    git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@90742 91177308-0d34-0410-b5e6-96231b3b80d8

commit c15c59e7601f48d83728faa47d5bf676ad084383
Author: Anton Korobeynikov <asl@math.spbu.ru>
Date:   Mon Dec 7 02:28:26 2009 +0000

    Truncate the arguments of llvm.frameaddress / llvm.returnaddress intrinsics from i32 to platform's largest native type

    git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@90741 91177308-0d34-0410-b5e6-96231b3b80d8

commit 71169a722a14e9f381d61253aa8ebafd28f3e5d9
Author: Anton Korobeynikov <asl@math.spbu.ru>
Date:   Mon Dec 7 02:28:10 2009 +0000

    Add lowering of returnaddr and frameaddr intrinsics. Shamelessly stolen from x86 :)

    git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@90740 91177308-0d34-0410-b5e6-96231b3b80d8

commit 5a39d69350dc6cdf4088ee6b1864070e619ef6d3
Author: Anton Korobeynikov <asl@math.spbu.ru>
Date:   Mon Dec 7 02:27:53 2009 +0000

    Initial codegen support for MSP430 ISRs

    git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@90739 91177308-0d34-0410-b5e6-96231b3b80d8

commit 56998002fed819fcf5d9dc28c49287454425506f
Author: Anton Korobeynikov <asl@math.spbu.ru>
Date:   Mon Dec 7 02:27:35 2009 +0000

    Add MSP430 interrupt calling conv. No functionality change yet.

    git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@90738 91177308-0d34-0410-b5e6-96231b3b80d8

commit 57f67276b60064d0bf4c97ad459241377dff7e08
Author: Anton Korobeynikov <asl@math.spbu.ru>
Date:   Mon Dec 7 02:27:08 2009 +0000

    Add ability to select hw multiplier mode and select appropriate libcalls.

    git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@90737 91177308-0d34-0410-b5e6-96231b3b80d8

commit 7363a6e009625b257d01c6c1a64653e17e2676cc
Author: Rafael Espindola <rafael.espindola@gmail.com>
Date:   Mon Dec 7 00:27:35 2009 +0000

    Fix typos. Thanks to John Tytgat for noticing it!

    git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@90728 91177308-0d34-0410-b5e6-96231b3b80d8

commit f7374f702cd95402ff597457c8b3772cf3770ecf
Author: Anton Korobeynikov <asl@math.spbu.ru>
Date:   Sun Dec 6 22:39:50 2009 +0000

    Dynamic stack realignment use of sp register as source/dest register
    in "bic sp, sp, #15" leads to unpredicatble behaviour in Thumb2 mode.
    Emit the following code instead:
    mov r4, sp
    bic r4, r4, #15
    mov sp, r4

    git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@90724 91177308-0d34-0410-b5e6-96231b3b80d8

commit 0cbb985ccdaaf5bc818e25d941a6e31d611deca4
Author: Chris Lattner <sabre@nondot.org>
Date:   Sun Dec 6 17:17:23 2009 +0000

    fix PR5698

    git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@90708 91177308-0d34-0410-b5e6-96231b3b80d8

commit ae4038f66b81c6a6017cac78817aa1c8dadd37d8
Author: Chris Lattner <sabre@nondot.org>
Date:   Sun Dec 6 16:58:41 2009 +0000

    remove extraneous comma clang warns about

    git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@90707 91177308-0d34-0410-b5e6-96231b3b80d8

commit 4bb632ff31a7a273cd8c7411319b27dd5b532f9f
Author: Chris Lattner <sabre@nondot.org>
Date:   Sun Dec 6 05:29:56 2009 +0000

    constant fold loads from memcpy's from global constants.  This is important
    because clang lowers nontrivial automatic struct/array inits to memcpy from
    a global array.

    git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@90698 91177308-0d34-0410-b5e6-96231b3b80d8

commit a96e53ae92d46707d04f238679ecb012ff07df99
Author: Chris Lattner <sabre@nondot.org>
Date:   Sun Dec 6 04:54:31 2009 +0000

    add support for forwarding mem intrinsic values to non-local loads.

    git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@90697 91177308-0d34-0410-b5e6-96231b3b80d8

commit d59cb5d5442025e89d4b6c16bf685a6f770d7add
Author: Chris Lattner <sabre@nondot.org>
Date:   Sun Dec 6 04:16:05 2009 +0000

    gvn is optimizing this better now.

    git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@90696 91177308-0d34-0410-b5e6-96231b3b80d8

commit cb00f73e99d788c3cb30168d32e46f6970c93d48
Author: Chris Lattner <sabre@nondot.org>
Date:   Sun Dec 6 01:57:02 2009 +0000

    Handle forwarding local memsets to loads.  For example, we optimize this:

    short x(short *A) {
      memset(A, 1, sizeof(*A)*100);
      return A[42];
    }

    to 'return 257' instead of doing the load.

    git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@90695 91177308-0d34-0410-b5e6-96231b3b80d8

commit 8e77e9b0238cff581abc86626cd153f726478804
Author: Chris Lattner <sabre@nondot.org>
Date:   Sun Dec 6 01:56:22 2009 +0000

    Add helper methods for forming shift operations with a constant
    shift amount.

    git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@90694 91177308-0d34-0410-b5e6-96231b3b80d8

commit 8e1e701a5bb2515de949ee95e457d208cbd36d19
Author: Chris Lattner <sabre@nondot.org>
Date:   Sun Dec 6 01:47:24 2009 +0000

    merge two tests.

    git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@90691 91177308-0d34-0410-b5e6-96231b3b80d8

commit 46999ba6514604c021f8ec30df15e47568840c85
Author: Oscar Fuentes <ofv@wanadoo.es>
Date:   Sun Dec 6 00:06:33 2009 +0000

    CheckAtomic.cmake: Put all C++ code inside CHECK_CXX_SOURCE_COMPILES.

    git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@90685 91177308-0d34-0410-b5e6-96231b3b80d8

commit ac88a7eecd22b24ede69845dd74cae286ff14816
Author: Oscar Fuentes <ofv@wanadoo.es>
Date:   Sat Dec 5 23:19:33 2009 +0000

    Fix for atomic intrinsics detection when using MSVC.

    Patch by Michael Beck!

    git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@90683 91177308-0d34-0410-b5e6-96231b3b80d8

commit a182b3f8ba53a7b042461fd206a0807697ae6e85
Author: Dan Gohman <gohman@apple.com>
Date:   Sat Dec 5 17:56:26 2009 +0000

    Remove old DBG_LABEL code.

    git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@90669 91177308-0d34-0410-b5e6-96231b3b80d8

commit 955748e8b311172018ee5ab478e84b1f663d6547
Author: Dan Gohman <gohman@apple.com>
Date:   Sat Dec 5 17:51:33 2009 +0000

    Remove the unused DisableLegalizeTypes option and related code.

    git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@90668 91177308-0d34-0410-b5e6-96231b3b80d8

commit d5b718ce82f52d669b9657ec5534f5b37a152637
Author: Bill Wendling <isanbard@gmail.com>
Date:   Sat Dec 5 07:59:04 2009 +0000

    Calling InvalidateEntry during the refinement was breaking the bootstrap.

    git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@90656 91177308-0d34-0410-b5e6-96231b3b80d8

commit b347993aa457ca3c18247735eb301388d1fe2e71
Author: Bill Wendling <isanbard@gmail.com>
Date:   Sat Dec 5 07:46:49 2009 +0000

    Final cleanups:

    - Privatize a typedef.
    - Call the InvalidateEntry when refining a type.

    git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@90655 91177308-0d34-0410-b5e6-96231b3b80d8

commit 27cae32667e68db30ebfdee6fa4727696895967f
Author: Bill Wendling <isanbard@gmail.com>
Date:   Sat Dec 5 07:30:23 2009 +0000

    Temporarily revert r90502. It was causing the llvm-gcc bootstrap on PPC to fail.

    git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@90653 91177308-0d34-0410-b5e6-96231b3b80d8

commit 9c9f6a6c8f5226419d4b0bac7c0cd5cf3f8d644d
Author: Nick Lewycky <nicholas@mxc.ca>
Date:   Sat Dec 5 06:37:52 2009 +0000

    Document that memory use intrinsics may also return Def results.

    git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@90651 91177308-0d34-0410-b5e6-96231b3b80d8

commit ea2236d55ea9e19aaedb6e4402a3be714aed7efd
Author: Nick Lewycky <nicholas@mxc.ca>
Date:   Sat Dec 5 06:37:24 2009 +0000

    Fix indentation in switch statement.

    git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@90650 91177308-0d34-0410-b5e6-96231b3b80d8

commit 2b7bc81e5026c1c950667f0d96f499edc671e49c
Author: Nick Lewycky <nicholas@mxc.ca>
Date:   Sat Dec 5 05:00:00 2009 +0000

    Generalize this optimization to work on equality comparisons between any two
    integers that are constant except for a single bit (the same n-th bit in each).

    git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@90646 91177308-0d34-0410-b5e6-96231b3b80d8

commit a1151bf0deb01cc4fd87b8a394196f1123c78566
Author: Eric Christopher <echristo@apple.com>
Date:   Sat Dec 5 02:46:03 2009 +0000

    More updates to objectsize intrinsic docs.

    git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@90644 91177308-0d34-0410-b5e6-96231b3b80d8

commit 1792bc68d2991042dceaa55f508a1c6c6a43b58a
Author: Dan Gohman <gohman@apple.com>
Date:   Sat Dec 5 02:00:34 2009 +0000

    Don't print a space before the : between the file name and line number.
    And separate the directory and file name with a '/'.

    git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@90641 91177308-0d34-0410-b5e6-96231b3b80d8

commit 7ea7e173d2eb27dc6a36b0c93c3e48ebea5da821
Author: Bill Wendling <isanbard@gmail.com>
Date:   Sat Dec 5 01:46:01 2009 +0000

    Inline methods which are called only once.

    git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@90640 91177308-0d34-0410-b5e6-96231b3b80d8

commit 1ce8b25281afb6b4b39f9e8442275007de6ef920
Author: Bill Wendling <isanbard@gmail.com>
Date:   Sat Dec 5 01:43:33 2009 +0000

    Refactor some code. No functionality change.

    git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@90639 91177308-0d34-0410-b5e6-96231b3b80d8

commit cfca6e367887ec0820cf5c664eec4c0714166980
Author: Dan Gohman <gohman@apple.com>
Date:   Sat Dec 5 01:42:34 2009 +0000

    Print newlines after printing labels for debug info, so that the output
    isn't cluttered with things like "Llabel47:Llabel48:  movq  (%rsi), %xmm3"

    git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@90638 91177308-0d34-0410-b5e6-96231b3b80d8

commit c5b50fbff2c7d0f0e5f225da1c2f3f58299b35da
Author: Dan Gohman <gohman@apple.com>
Date:   Sat Dec 5 01:29:04 2009 +0000

    Don't blindly set the debug location for PHI node copies.

    git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@90637 91177308-0d34-0410-b5e6-96231b3b80d8

commit 581cdf90ade3d318dedde0c645d478ffede09e0d
Author: Dan Gohman <gohman@apple.com>
Date:   Sat Dec 5 01:27:58 2009 +0000

    Make TargetSelectInstruction protected and called from FastISel.cpp
    instead of SelectionDAGISel.cpp.

    git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@90636 91177308-0d34-0410-b5e6-96231b3b80d8

commit 01696988ff3c98744cce105372803d4ed903f988
Author: Dan Gohman <gohman@apple.com>
Date:   Sat Dec 5 00:44:40 2009 +0000

    Remove the target hook TargetInstrInfo::BlockHasNoFallThrough in favor of
    MachineBasicBlock::canFallThrough(), which is target-independent and more
    thorough.

    git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@90634 91177308-0d34-0410-b5e6-96231b3b80d8

commit bc18967dc5cbda59461d704cc1543b4fbd57f592
Author: Dan Gohman <gohman@apple.com>
Date:   Sat Dec 5 00:32:59 2009 +0000

    Simplify this code: don't call AnalyzeBranch before doing simpler checks.

    git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@90633 91177308-0d34-0410-b5e6-96231b3b80d8

commit 1ca1ac3967582cd4c02a12054b927adc1e111e52
Author: Dan Gohman <gohman@apple.com>
Date:   Sat Dec 5 00:27:08 2009 +0000

    The debug information for an LLVM Instruction applies to that Instruction
    and that Instruction only. Implement this by setting the "current debug position"
    back to Unknown after processing each instruction.

    git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@90632 91177308-0d34-0410-b5e6-96231b3b80d8

commit 4698bab134cd68e41ae098168d9fd78e64b69904
Author: Dan Gohman <gohman@apple.com>
Date:   Sat Dec 5 00:23:29 2009 +0000

    Fix this code to use DIScope instead of DICompileUnit, as in r90181.
    Don't print "SrcLine"; just print the filename and line number, which
    is obvious enough and more informative.

    git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@90631 91177308-0d34-0410-b5e6-96231b3b80d8

commit ef92a646d90a7dc618598e7b836638f96238f245
Author: Dan Gohman <gohman@apple.com>
Date:   Sat Dec 5 00:20:51 2009 +0000

    Don't print the debug directory; it's often long and uninteresting. Omit
    the column number if it is not known. Handle the case of a missing filename
    better.

    git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@90630 91177308-0d34-0410-b5e6-96231b3b80d8

commit a45e4926a3f8191749e5796b1829387c729a8a41
Author: Dan Gohman <gohman@apple.com>
Date:   Sat Dec 5 00:05:43 2009 +0000

    Minor code simplification.

    git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@90628 91177308-0d34-0410-b5e6-96231b3b80d8

commit 1db628b4bc909ddc0d17ac0b2930cbf00a61191a
Author: David Greene <greened@obbligato.org>
Date:   Sat Dec 5 00:03:24 2009 +0000

    Remove an unneeded include.

    git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@90627 91177308-0d34-0410-b5e6-96231b3b80d8

commit 2b62af25fd3f6b7b9efd33f31c2db6c806b5cb6c
Author: Dan Gohman <gohman@apple.com>
Date:   Sat Dec 5 00:02:37 2009 +0000

    Remove now-redundant llvm-as invocations.

    git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@90626 91177308-0d34-0410-b5e6-96231b3b80d8

commit a2b73bd6b0f0b3271a9d63a9933bafbcba2555fe
Author: David Greene <greened@obbligato.org>
Date:   Fri Dec 4 23:55:07 2009 +0000

    Remove an unneeded include.

    git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@90625 91177308-0d34-0410-b5e6-96231b3b80d8

commit 546f68a11248be2f32331f07c5baccf8d9ebb00d
Author: Bill Wendling <isanbard@gmail.com>
Date:   Fri Dec 4 23:29:57 2009 +0000

    Add testcase for PR4262.

    git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@90623 91177308-0d34-0410-b5e6-96231b3b80d8

commit e26680ba1f829b15338f0f128855432c5bfd7210
Author: Dan Gohman <gohman@apple.com>
Date:   Fri Dec 4 23:19:55 2009 +0000

    Print a space between the comment character and the text.

    git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@90621 91177308-0d34-0410-b5e6-96231b3b80d8

commit 6329f4f55dcdfb70f68498843c88b5a73dcd4c03
Author: Bill Wendling <isanbard@gmail.com>
Date:   Fri Dec 4 23:16:56 2009 +0000

    Temporarily revert r72620 because r72619 was reverted.

    git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@90619 91177308-0d34-0410-b5e6-96231b3b80d8

commit d3df6974d831cc29b86026ce3ee3467eb489ea7f
Author: Devang Patel <dpatel@apple.com>
Date:   Fri Dec 4 23:10:24 2009 +0000

    In TAG_subrange_type, uppder bound is zero indexed.

    git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@90617 91177308-0d34-0410-b5e6-96231b3b80d8

commit ef682b7fdd6c1fc93490a01b7ba4093e4c935771
Author: David Greene <greened@obbligato.org>
Date:   Fri Dec 4 23:08:02 2009 +0000

    Fix a bad merge.

    git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@90616 91177308-0d34-0410-b5e6-96231b3b80d8

commit 989d418a4e80243a7c1ef377b24129218ba99cd5
Author: David Greene <greened@obbligato.org>
Date:   Fri Dec 4 23:00:50 2009 +0000

    Update the TargetInstrInfo interfaces so hasLoad/StoreFrom/ToStackSlot
    can return a MachineMemOperand.

    git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@90615 91177308-0d34-0410-b5e6-96231b3b80d8

commit 0ef2d0921f1b88f1be8eb8c3380b4e17aee82bae
Author: Bob Wilson <bob.wilson@apple.com>
Date:   Fri Dec 4 22:46:47 2009 +0000

    Fix indentation.

    git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@90613 91177308-0d34-0410-b5e6-96231b3b80d8

commit 11a046f10f723cac2c598dd0a626383c43aecba2
Author: David Greene <greened@obbligato.org>
Date:   Fri Dec 4 22:46:04 2009 +0000

    Use new interfaces to print spill size.

    git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@90611 91177308-0d34-0410-b5e6-96231b3b80d8

commit 647636ff709918827317acb14e19f1f78731d140
Author: David Greene <greened@obbligato.org>
Date:   Fri Dec 4 22:38:46 2009 +0000

    Have hasLoad/StoreFrom/ToStackSlot return the relevant MachineMemOperand.

    git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@90608 91177308-0d34-0410-b5e6-96231b3b80d8

commit 17bd7fec405d4836c56e7f36d46c89d7a19dc25f
Author: Bob Wilson <bob.wilson@apple.com>
Date:   Fri Dec 4 21:57:37 2009 +0000

    Fix up some comments.

    git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@90603 91177308-0d34-0410-b5e6-96231b3b80d8

commit fcb8eeed72b0f2838ccf134e814aad2feb254192
Author: Bob Wilson <bob.wilson@apple.com>
Date:   Fri Dec 4 21:51:35 2009 +0000

    Fix 80-column violations.

    git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@90601 91177308-0d34-0410-b5e6-96231b3b80d8

commit cfd40e5a54cf4299c3ec340152e1ae0350530b37
Author: Daniel Dunbar <daniel@zuster.org>
Date:   Fri Dec 4 21:41:24 2009 +0000

    OptParser: Emit HelpText field for option groups.

    git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@90599 91177308-0d34-0410-b5e6-96231b3b80d8

commit c461971d6dea16b5a464a801979b133746016d2f
Author: Bill Wendling <isanbard@gmail.com>
Date:   Fri Dec 4 21:03:02 2009 +0000

    Some code cleanup. No functionality change.

    git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@90588 91177308-0d34-0410-b5e6-96231b3b80d8

commit deb54c890a835d61f87054cd0f0fd89929fd7207
Author: Victor Hernandez <vhernandez@apple.com>
Date:   Fri Dec 4 20:07:10 2009 +0000

    Avoid creating a metadata slot for all metadata that contains an instruction

    git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@90581 91177308-0d34-0410-b5e6-96231b3b80d8

commit 99298f61d3a280ade30c73faee24fd72e0cdc228
Author: Evan Cheng <evan.cheng@apple.com>
Date:   Fri Dec 4 19:09:10 2009 +0000

    Handle recursive PHI's.

    git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@90575 91177308-0d34-0410-b5e6-96231b3b80d8

commit abf657c53cc476649c440c08edc622f71cbc61ba
Author: Victor Hernandez <vhernandez@apple.com>
Date:   Fri Dec 4 18:29:23 2009 +0000

    Fix crasher when N->getElement(n) is NULL

    git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@90572 91177308-0d34-0410-b5e6-96231b3b80d8

commit 371fcef75743c634263720bcd3a61a1615b90163
Author: Evan Cheng <evan.cheng@apple.com>
Date:   Fri Dec 4 09:42:45 2009 +0000

    Add a pre-regalloc tail duplication pass.

    git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@90567 91177308-0d34-0410-b5e6-96231b3b80d8

commit 6941493d76d1aaaffb2d5d505eef249f9145d07b
Author: Evan Cheng <evan.cheng@apple.com>
Date:   Fri Dec 4 09:23:37 2009 +0000

    Don't try to be cute with undef optimization here. Let ProcessImplicitDefs handle it.

    git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@90566 91177308-0d34-0410-b5e6-96231b3b80d8

commit c4c88cfd8ee8bff54a68d0642d671ea778782e6d
Author: Duncan Sands <baldrick@free.fr>
Date:   Fri Dec 4 08:42:17 2009 +0000

    Add note about a subtle bug in this code.  Does not effect the main
    architectures that LLVM targets, because they don't use this code.

    git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@90564 91177308-0d34-0410-b5e6-96231b3b80d8

commit 6f27b6231b04b85963be239e4b4e38a4ca4ad282
Author: Daniel Dunbar <daniel@zuster.org>
Date:   Fri Dec 4 08:17:07 2009 +0000

    Fix typo and add missing include.

    git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@90557 91177308-0d34-0410-b5e6-96231b3b80d8

commit 078fc85321a73e8e62dac97c35361306ffd0205c
Author: Andreas Neustifter <astifter@gmx.at>
Date:   Fri Dec 4 06:58:24 2009 +0000

    Added debug output for inherited passes that are invalidated.

    git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@90553 91177308-0d34-0410-b5e6-96231b3b80d8

commit 14d122d1e12cccd89611132195c0c884ff20f08c
Author: Mikhail Glushenkov <foldr@codedgers.com>
Date:   Fri Dec 4 06:38:45 2009 +0000

    Forward -m32/-m64 to the linker.

    git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@90548 91177308-0d34-0410-b5e6-96231b3b80d8

commit b6244a12df638a1e891969f5d98c39061a4afedb
Author: Mikhail Glushenkov <foldr@codedgers.com>
Date:   Fri Dec 4 06:38:28 2009 +0000

    Support -march/-mtune/-mcpu.

    git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@90547 91177308-0d34-0410-b5e6-96231b3b80d8

commit a9c1d1c0c9628ce3b99e16e610ec41affcbaf614
Author: Chris Lattner <sabre@nondot.org>
Date:   Fri Dec 4 06:29:29 2009 +0000

    Fix PR5551 by not ignoring the top level constantexpr when
    folding a load from constant.

    git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@90545 91177308-0d34-0410-b5e6-96231b3b80d8

commit 264a3832a12498c4cf895d43ca3642faea987617
Author: Chris Lattner <sabre@nondot.org>
Date:   Fri Dec 4 04:15:36 2009 +0000

    add to cmake

    git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@90539 91177308-0d34-0410-b5e6-96231b3b80d8

commit f3271997b64f2881fbfb1152031ed2e14337ecba
Author: Chris Lattner <sabre@nondot.org>
Date:   Fri Dec 4 02:12:12 2009 +0000

    Small and carefully crafted testcase showing a miscompilation by GVN
    that I'm working on.  This is manifesting as a miscompile of 255.vortex
    on some targets.  No check lines yet because it fails.

    git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@90520 91177308-0d34-0410-b5e6-96231b3b80d8

commit 9003793e8d154cb9b14cc2391c46c68f97e2182c
Author: Chris Lattner <sabre@nondot.org>
Date:   Fri Dec 4 02:10:16 2009 +0000

    add the start of a class used to handle phi translation in memdep and
    gvn (this is just a skeleton so far).  This will ultimately be used
    to fix a nasty miscompilation with GVN.

    git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@90518 91177308-0d34-0410-b5e6-96231b3b80d8

commit 1358217bcbc89fe174040d453fbb63f4a2ca79d5
Author: Mike Stump <mrs@apple.com>
Date:   Fri Dec 4 01:53:15 2009 +0000

    Create yet another helper for Invoke.

    git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@90514 91177308-0d34-0410-b5e6-96231b3b80d8

commit 634753dbd76b1db3ed7a48af1d1fbc94da3daa93
Author: Victor Hernandez <vhernandez@apple.com>
Date:   Fri Dec 4 01:35:02 2009 +0000

    Teach AsmWriter to write inline (not via a global metadata slot) metadata that contains an instruction

    git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@90512 91177308-0d34-0410-b5e6-96231b3b80d8

commit a0c7dd2577afbb02d62879c8b6ac4ecd6d372d62
Author: Bob Wilson <bob.wilson@apple.com>
Date:   Fri Dec 4 01:33:04 2009 +0000

    Fix a comment typo.

    git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@90511 91177308-0d34-0410-b5e6-96231b3b80d8

commit cdbf27b90f3018b6bb3b66b3f58db960d445ef59
Author: Mike Stump <mrs@apple.com>
Date:   Fri Dec 4 01:26:26 2009 +0000

    Add some helpers for Invoke to mirror CreateCall helpers.

    git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@90508 91177308-0d34-0410-b5e6-96231b3b80d8

commit 6bf11742990180e29ca58bbe8f1149773ec6090a
Author: Chris Lattner <sabre@nondot.org>
Date:   Fri Dec 4 01:03:32 2009 +0000

    add an assert to make it really clear what this is doing.  Return singularval as
    a compile time perf optimization to avoid a load.

    git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@90507 91177308-0d34-0410-b5e6-96231b3b80d8

commit 88d11c3a214da464deb05eb17922d633e5af77a1
Author: Jakob Stoklund Olesen <stoklund@2pi.dk>
Date:   Fri Dec 4 00:16:04 2009 +0000

    Also attempt trivial coalescing for live intervals that end in a copy.

    The coalescer is supposed to clean these up, but when setting up parameters
    for a function call, there may be copies to physregs. If the defining
    instruction has been LICM'ed far away, the coalescer won't touch it.

    The register allocation hint does not always work - when the register
    allocator is backtracking, it clears the hints.

    This patch takes care of a few more cases that r90163 missed.

    git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@90502 91177308-0d34-0410-b5e6-96231b3b80d8

commit 723be602ecdfde30a50c3afe1780575fdf8f0f56
Author: Evan Cheng <evan.cheng@apple.com>
Date:   Fri Dec 4 00:09:05 2009 +0000

    - If the reaching definition is an undef and the use is a PHI, add the implicit_def to the end of the source block.
    - When reaching value is replaced with another, update the cache as well.

    git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@90501 91177308-0d34-0410-b5e6-96231b3b80d8

commit 4285ddbfd5fd218038058a6fdb2366ae3247a99d
Author: Devang Patel <dpatel@apple.com>
Date:   Thu Dec 3 23:46:57 2009 +0000

    Insert composite type DIE into the map before processing type fields. This allows fields to find their context DIE from the map.

    git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@90498 91177308-0d34-0410-b5e6-96231b3b80d8

commit 223c7146f919727a834a1fa5471f25ce169ab2a6
Author: Victor Hernandez <vhernandez@apple.com>
Date:   Thu Dec 3 23:40:58 2009 +0000

    Add ParseInlineMetadata() which can parses metadata that refers to an instruction.  Extend ParseParameterList() to use this new function so that calls to llvm.dbg.declare can pass inline metadata

    git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@90497 91177308-0d34-0410-b5e6-96231b3b80d8

commit d003075f1b3921f20ac9da8e0310afa4cd9b2f04
Author: Jim Grosbach <grosbach@apple.com>
Date:   Thu Dec 3 21:55:01 2009 +0000

    remove out of date FIXME.

    git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@90490 91177308-0d34-0410-b5e6-96231b3b80d8

commit 21d9a013924f79957deaa9dac748d722cc40b40a
Author: Evan Cheng <evan.cheng@apple.com>
Date:   Thu Dec 3 21:51:55 2009 +0000

    Handle undef values properly.

    git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@90489 91177308-0d34-0410-b5e6-96231b3b80d8

commit 886ea36230307f67689a2f318adf47ec80dd8be4
Author: Evan Cheng <evan.cheng@apple.com>
Date:   Thu Dec 3 21:50:58 2009 +0000

    Watch out for PHI instruction with no source operands.

    git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@90488 91177308-0d34-0410-b5e6-96231b3b80d8

commit 505f207509d2814d54c957bd9324c59b332f35ba
Author: Bob Wilson <bob.wilson@apple.com>
Date:   Thu Dec 3 21:47:07 2009 +0000

    Fix a comment typo.

    git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@90487 91177308-0d34-0410-b5e6-96231b3b80d8

commit b956e74994c0d0e41f2862e79d96ec699de782de
Author: Duncan Sands <baldrick@free.fr>
Date:   Thu Dec 3 21:37:32 2009 +0000

    Fix ExpandShiftWithUnknownAmountBit, which was completely bogus.
    Pointed out by Javier Martinez (who also provided a patch).  Since
    this logic is not used on (for example) x86, I guess nobody noticed.
    Tested by generating SHL, SRL, SRA on various choices of i64 for all
    possible shift amounts, and comparing with gcc.  Since I did this on
    x86-32, I had to force the use of ExpandShiftWithUnknownAmountBit.
    What I'm saying here is that I don't have a testcase I can add to the
    repository.

    git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@90482 91177308-0d34-0410-b5e6-96231b3b80d8

commit d0afa909ad8d1b108b4ad6925ca6b3a5de2817e2
Author: Jakob Stoklund Olesen <stoklund@2pi.dk>
Date:   Thu Dec 3 20:49:10 2009 +0000

    Clean up some loop logic.

    git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@90481 91177308-0d34-0410-b5e6-96231b3b80d8

commit 188c85dc4247e23ddaa63e055972253de3901fdb
Author: Devang Patel <dpatel@apple.com>
Date:   Thu Dec 3 19:11:07 2009 +0000

    Add support to emit debug info for virtual functions and virtual base classes.

    git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@90474 91177308-0d34-0410-b5e6-96231b3b80d8

commit 96d7b188600be74e1936f6ed871b1d83d017bbf8
Author: Dan Gohman <gohman@apple.com>
Date:   Thu Dec 3 19:03:18 2009 +0000

    Print a newline after the Args: line so that unrelated errs() output doesn't
    end up on the same line.

    git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@90473 91177308-0d34-0410-b5e6-96231b3b80d8

commit 5e1265d554b730da926b3fee830c38e5dd9eefae
Author: Benjamin Kramer <benny.kra@googlemail.com>
Date:   Thu Dec 3 13:23:03 2009 +0000

    Fix MSVC build.

    git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@90454 91177308-0d34-0410-b5e6-96231b3b80d8

commit e047045d670b654099260d18939e7c997ef382b6
Author: Andreas Neustifter <astifter@gmx.at>
Date:   Thu Dec 3 12:55:57 2009 +0000

    Convert ProfileVerifier to template so it can be used for different types of ProfileInfo.

    git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@90451 91177308-0d34-0410-b5e6-96231b3b80d8

commit f2aee46c884e3f2ef217f9c923eeb1f9b303f784
Author: Andreas Neustifter <astifter@gmx.at>
Date:   Thu Dec 3 12:41:14 2009 +0000

    Do not create negative edge weights in ProfileEstimator.
    Use integer values for weights to prevent rounding errors.
    Make ProfileEstimator more robust in general CFGs.

    git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@90449 91177308-0d34-0410-b5e6-96231b3b80d8

commit eee658317491fb9c16588d9490a953cbe099099c
Author: Daniel Dunbar <daniel@zuster.org>
Date:   Thu Dec 3 11:12:42 2009 +0000

    Add an implementation of the delta debugging algorithm.
     - This is a pretty slow / memory intensive implementation, and I will likely
       change it to an iterative model, but it works.

    git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@90447 91177308-0d34-0410-b5e6-96231b3b80d8

commit 86f33f89980cab23051ee961585883bb3627d7a8
Author: Andreas Neustifter <astifter@gmx.at>
Date:   Thu Dec 3 11:00:37 2009 +0000

    Use ProfileInfo-API in ProfileInfo Loader and do more assertions.

    git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@90446 91177308-0d34-0410-b5e6-96231b3b80d8

commit 5c3770a68b8978d3b7ab6abe6176590b8bbbe59e
Author: Andreas Neustifter <astifter@gmx.at>
Date:   Thu Dec 3 09:30:12 2009 +0000

    Converted ProfileInfo to template, added more API for ProfileInfo-preserving.

    git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@90445 91177308-0d34-0410-b5e6-96231b3b80d8

commit e83c9b214205978873745b7368df84cf9f117996
Author: Evan Cheng <evan.cheng@apple.com>
Date:   Thu Dec 3 08:43:53 2009 +0000

    Teach tail duplication to update SSA form. Work in progress.

    git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@90432 91177308-0d34-0410-b5e6-96231b3b80d8

commit 112929ef9a90dece270087545a7b173e64dc6245
Author: Chris Lattner <sabre@nondot.org>
Date:   Thu Dec 3 07:43:46 2009 +0000

    expand note.

    git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@90429 91177308-0d34-0410-b5e6-96231b3b80d8

commit dddb3a3b9e782e72a9568a31639ede110cf05131
Author: Chris Lattner <sabre@nondot.org>
Date:   Thu Dec 3 07:41:54 2009 +0000

    add a note

    git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@90428 91177308-0d34-0410-b5e6-96231b3b80d8

commit ea5d5940df6894c2efc4c6ac76700922df97d8b2
Author: Nate Begeman <natebegeman@mac.com>
Date:   Thu Dec 3 07:11:29 2009 +0000

    Don't pull vector sext through both hands of a logical operation, since doing so prevents the fusion of vector sext and setcc into vsetcc.
    Add a testcase for the above transformation.
    Fix a bogus use of APInt noticed while tracking this down.

    git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@90423 91177308-0d34-0410-b5e6-96231b3b80d8

commit 12fac174a70da350938ffa425d60e5f314ca5a8d
Author: Chris Lattner <sabre@nondot.org>
Date:   Thu Dec 3 06:58:32 2009 +0000

    fix a build problem with VC++, PR5664, patch by Alp Toker!

    git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@90419 91177308-0d34-0410-b5e6-96231b3b80d8

commit 171422980d99d7689b2cac01504b981e87b61905
Author: Bob Wilson <bob.wilson@apple.com>
Date:   Thu Dec 3 06:40:55 2009 +0000

    Recognize canonical forms of vector shuffles where the same vector is used for
    both source operands.  In the canonical form, the 2nd operand is changed to an
    undef and the shuffle mask is adjusted to only reference elements from the 1st
    operand.  Radar 7434842.

    git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@90417 91177308-0d34-0410-b5e6-96231b3b80d8

commit 1ac6732b47ec36df1b6d990a62d21da02fddee2b
Author: Jakob Stoklund Olesen <stoklund@2pi.dk>
Date:   Thu Dec 3 05:15:35 2009 +0000

    Don't call getValueType() on a null SDValue

    git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@90415 91177308-0d34-0410-b5e6-96231b3b80d8

commit 2c405b9b2073b226155ef3e928ffa4f07e69607d
Author: Owen Anderson <resistor@mac.com>
Date:   Thu Dec 3 03:43:29 2009 +0000

    Fix this crasher, and add a FIXME for a missed optimization.

    git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@90408 91177308-0d34-0410-b5e6-96231b3b80d8

commit 615cc8769c570cab6cb910255c0fab10256cf272
Author: Evan Cheng <evan.cheng@apple.com>
Date:   Thu Dec 3 02:31:43 2009 +0000

    Fill out codegen SSA updater. It's not yet tested.

    git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@90395 91177308-0d34-0410-b5e6-96231b3b80d8

commit ff1f7f7ab396cf2f68d64a7bc54d04f7dde178ae
Author: Bill Wendling <isanbard@gmail.com>
Date:   Thu Dec 3 01:54:07 2009 +0000

    Revert r90371. It was causing build failures.

    git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@90383 91177308-0d34-0410-b5e6-96231b3b80d8

commit 26f2fb73faa4634ef52b931f6581f127c79bc2f2
Author: Jakob Stoklund Olesen <stoklund@2pi.dk>
Date:   Thu Dec 3 01:49:56 2009 +0000

    Don't hang on to pointers or references after vector::push_back.

    The MO reference to a MachineOperand can be invalidated by
    MachineInstr::addOperand. Don't even use it for debugging.

    git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@90381 91177308-0d34-0410-b5e6-96231b3b80d8

commit 5c17063f8a9795289eee9454110f066e225a72bd
Author: Chris Lattner <sabre@nondot.org>
Date:   Thu Dec 3 01:46:18 2009 +0000

    add a failing testcase.

    git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@90380 91177308-0d34-0410-b5e6-96231b3b80d8

commit c1df879dbd07bb4d63e7cc6358ed73263c631c12
Author: Devang Patel <dpatel@apple.com>
Date:   Thu Dec 3 01:25:38 2009 +0000

    Emit method definition DIE at module level (even for methods with inlined functino body at soure level) so that the debugger can invoke it. This fixes many test failures in gdb test suite.

    git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@90375 91177308-0d34-0410-b5e6-96231b3b80d8

commit 07af48541ca53034b99a5290bca9b8d45849860c
Author: Bill Wendling <isanbard@gmail.com>
Date:   Thu Dec 3 01:15:46 2009 +0000

    Further improvements: refactoring code that does the same thing into one
    function, converting "dyn_cast" to "cast", asserting the correct things, and
    other general cleanups.

    git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@90371 91177308-0d34-0410-b5e6-96231b3b80d8

commit 610e0bd83840b8254dbc2ad0a4ba352eca16a720
Author: Chris Lattner <sabre@nondot.org>
Date:   Thu Dec 3 01:10:05 2009 +0000

    yay for case insensitive file systems (?)

    git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@90370 91177308-0d34-0410-b5e6-96231b3b80d8

commit 56de6c29b3028dc1d6e5dc203292de7bb44275d5
Author: Chris Lattner <sabre@nondot.org>
Date:   Thu Dec 3 01:05:45 2009 +0000

    fix PR5673 by being more careful about pointers to functions.

    git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@90369 91177308-0d34-0410-b5e6-96231b3b80d8

commit a262eaa4f9eb214d28918a397c07a80b6158bf0b
Author: Chris Lattner <sabre@nondot.org>
Date:   Thu Dec 3 00:55:04 2009 +0000

    remove some dead std::ostream using code.

    git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@90366 91177308-0d34-0410-b5e6-96231b3b80d8

commit b44b429549bc4c4f950d56d4f6fa0ba486856cc6
Author: Chris Lattner <sabre@nondot.org>
Date:   Thu Dec 3 00:50:42 2009 +0000

    improve portability to avoid conflicting with std::next in c++'0x.
    Patch by Howard Hinnant!

    git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@90365 91177308-0d34-0410-b5e6-96231b3b80d8

commit 56eb10842f19c43f3970f6f6ba2d8b7dbf4807e9
Author: Bill Wendling <isanbard@gmail.com>
Date:   Thu Dec 3 00:17:12 2009 +0000

    This initial code is meant to convert TargetData to use an AbstractTypesUser so
    that it doesn't have dangling pointers when abstract types are resolved. This
    modifies it somewhat to address comments: making the "StructLayoutMap" an
    anonymous structure, calling "removeAbstractTypeUser" when appropriate, and
    adding asserts where helpful.

    git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@90362 91177308-0d34-0410-b5e6-96231b3b80d8

commit 33221d9fcccbb6f41d5664fd0b89c9e6f71a0875
Author: Douglas Gregor <doug.gregor@gmail.com>
Date:   Wed Dec 2 22:19:31 2009 +0000

    Fix CMake makefiles

    git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@90354 91177308-0d34-0410-b5e6-96231b3b80d8

commit 023a88ee8ad038b8e7686187cee877299cdefbca
Author: Evan Cheng <evan.cheng@apple.com>
Date:   Wed Dec 2 22:02:52 2009 +0000

    Skeleton for MachineInstr level SSA updater.

    git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@90353 91177308-0d34-0410-b5e6-96231b3b80d8

commit dd6fa9f3032a0781be6c8b4acd8aba62d5b96285
Author: Bill Wendling <isanbard@gmail.com>
Date:   Wed Dec 2 22:02:20 2009 +0000

    Remove unnecessary check.

    git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@90352 91177308-0d34-0410-b5e6-96231b3b80d8

commit dee452ff502feea9a09247af651d25107748bc0e
Author: Jim Grosbach <grosbach@apple.com>
Date:   Wed Dec 2 19:31:07 2009 +0000

    Add MaxStackAlignment.cpp to CMake

    git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@90337 91177308-0d34-0410-b5e6-96231b3b80d8

commit 4d20ee6d9a35d9498ad170c55ba714b346237a55
Author: Jim Grosbach <grosbach@apple.com>
Date:   Wed Dec 2 19:30:24 2009 +0000

    Factor the stack alignment calculations out into a target independent pass.
    No functionality change.

    git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@90336 91177308-0d34-0410-b5e6-96231b3b80d8

commit 5eb5f091ab381b612c271a1683e6e0870394d0c4
Author: Bob Wilson <bob.wilson@apple.com>
Date:   Wed Dec 2 17:15:24 2009 +0000

    Don't count PHI instructions toward the limit for tail duplicating a block.

    git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@90326 91177308-0d34-0410-b5e6-96231b3b80d8

commit 3168d8c736130382a1c7b92a452f3707cc69783a
Author: Jim Grosbach <grosbach@apple.com>
Date:   Wed Dec 2 17:06:45 2009 +0000

    Move EliminateDuplicatePHINodes() from SimplifyCFG.cpp to Local.cpp

    git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@90324 91177308-0d34-0410-b5e6-96231b3b80d8

commit 00e637ba6ff6e9749f67cbed852462839d14241b
Author: Andreas Neustifter <astifter@gmx.at>
Date:   Wed Dec 2 15:57:15 2009 +0000

    Cheap, mostly strict, stable sorting.

    This is necessary for tests so the results are comparable.

    git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@90320 91177308-0d34-0410-b5e6-96231b3b80d8

commit aca44457101e481c0efc60e9e3f8a0c5a53e45aa
Author: Benjamin Kramer <benny.kra@googlemail.com>
Date:   Wed Dec 2 15:33:44 2009 +0000

    Silence compiler warnings.

    git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@90319 91177308-0d34-0410-b5e6-96231b3b80d8

commit df0f215750690b1c58f76b72f751d5a5c4da46d8
Author: Devang Patel <dpatel@apple.com>
Date:   Wed Dec 2 15:25:16 2009 +0000

    Clarify that DIEString does not keep a copy of the string.

    git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@90318 91177308-0d34-0410-b5e6-96231b3b80d8

commit f187daf03250b0e1763bf07437d5048f6320789c
Author: Owen Anderson <resistor@mac.com>
Date:   Wed Dec 2 07:35:19 2009 +0000

    Cleanup/remove some parts of the lifetime region handling code in memdep and GVN,
    per Chris' comments.  Adjust testcases to match.

    git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@90304 91177308-0d34-0410-b5e6-96231b3b80d8

commit bc6fccc2682a75a1dcbf8904334bc3b137fdc213
Author: Chris Lattner <sabre@nondot.org>
Date:   Wed Dec 2 06:44:58 2009 +0000

    factor some code better.

    git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@90299 91177308-0d34-0410-b5e6-96231b3b80d8

commit 648dc5a2106ef92818f54ef831ac051f7d238264
Author: Chris Lattner <sabre@nondot.org>
Date:   Wed Dec 2 06:35:55 2009 +0000

    formatting cleanups.

    git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@90298 91177308-0d34-0410-b5e6-96231b3b80d8

commit 262590904ae923498bc704da374110de14289a2a
Author: Chris Lattner <sabre@nondot.org>
Date:   Wed Dec 2 06:05:42 2009 +0000

    tidy up, remove dependence on order of evaluation of function args from EmitMemCpy.

    git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@90297 91177308-0d34-0410-b5e6-96231b3b80d8

commit 53f9966b7a5454affde814ceb105c7f26f330617
Author: Chris Lattner <sabre@nondot.org>
Date:   Wed Dec 2 05:34:35 2009 +0000

    merge sext-2 into sext.ll

    git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@90293 91177308-0d34-0410-b5e6-96231b3b80d8

commit 4f7fc4e0d23f3c2feb72d872843465c572774479
Author: Chris Lattner <sabre@nondot.org>
Date:   Wed Dec 2 05:32:33 2009 +0000

    rename test

    git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@90292 91177308-0d34-0410-b5e6-96231b3b80d8

commit 79e59484e54d1fb722525de5f7e23101e128e1b8
Author: Chris Lattner <sabre@nondot.org>
Date:   Wed Dec 2 05:32:16 2009 +0000

    filecheckize

    git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@90291 91177308-0d34-0410-b5e6-96231b3b80d8

commit 3adb22982168a536036386dc27dd0522f0839658
Author: Mon P Wang <wangmp@apple.com>
Date:   Wed Dec 2 04:59:58 2009 +0000

    Fixed an assertion failure for tracking sext of a vector of integers

    git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@90290 91177308-0d34-0410-b5e6-96231b3b80d8

commit 69668fe63a3e714b363c251307dc34e243b1d101
Author: Devang Patel <dpatel@apple.com>
Date:   Tue Dec 1 23:09:02 2009 +0000

    Add utility routine to create subprogram definition entry from subprogram declaration entry.

    git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@90282 91177308-0d34-0410-b5e6-96231b3b80d8

commit 920ffac27e66522138cddf6aac63f4965c8103dd
Author: Devang Patel <dpatel@apple.com>
Date:   Tue Dec 1 23:07:59 2009 +0000

    Reuse existing subprogram DIE.

    git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@90281 91177308-0d34-0410-b5e6-96231b3b80d8

commit b05c79891c16cf8f9b86fc0a35e496f398ec5ebb
Author: Chris Lattner <sabre@nondot.org>
Date:   Tue Dec 1 22:51:41 2009 +0000

    return more useful error messages by using strerror to format errno
    instead of returning an ambiguous reason.

    git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@90275 91177308-0d34-0410-b5e6-96231b3b80d8

commit ad60d2d9e46713fde0421b91ebcd0a1369b142e5
Author: Eric Christopher <echristo@apple.com>
Date:   Tue Dec 1 22:28:41 2009 +0000

    Update per Bill's comments. Work in progress.

    git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@90271 91177308-0d34-0410-b5e6-96231b3b80d8

commit 578f3231d6c9ba6d6bd8c683033748cf4d68b623
Author: Evan Cheng <evan.cheng@apple.com>
Date:   Tue Dec 1 22:25:00 2009 +0000

    Fix PR5391: support early clobber physical register def tied with a use (ewwww)
    - A valno should be set HasRedefByEC if there is an early clobber def in the middle of its live ranges. It should not be set if the def of the valno is defined by an early clobber.
    - If a physical register def is tied to an use and it's an early clobber, it just means the HasRedefByEC is set since it's still one continuous live range.
    - Add a couple of missing checks for HasRedefByEC in the coalescer. In general, it should not coalesce a vr with a physical register if the physical register has a early clobber def somewhere. This is overly conservative but that's the price for using such a nasty inline asm "feature".

    git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@90269 91177308-0d34-0410-b5e6-96231b3b80d8

commit 79affd8fb46d75087c98aa4095dfc207c820d9f1
Author: Jim Grosbach <grosbach@apple.com>
Date:   Tue Dec 1 21:53:51 2009 +0000

    test case for IV-Users simplification loop improvement

    git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@90260 91177308-0d34-0410-b5e6-96231b3b80d8

commit 536fff516dd00816acf36d0b118e391a119e182b
Author: Chris Lattner <sabre@nondot.org>
Date:   Tue Dec 1 21:16:01 2009 +0000

    rename some variables.

    git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@90258 91177308-0d34-0410-b5e6-96231b3b80d8

commit 39380bfcb91f84d404d5adbf38e4b3916769cd82
Author: Chris Lattner <sabre@nondot.org>
Date:   Tue Dec 1 21:15:15 2009 +0000

    tidy

    git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@90257 91177308-0d34-0410-b5e6-96231b3b80d8

commit 69be7878c045ac40c9c847fe8d04f44e51663c04
Author: Dan Gohman <gohman@apple.com>
Date:   Tue Dec 1 19:20:00 2009 +0000

    Add edge source labels to SelectionDAG graphs, now that the graph printing
    framework omits differentiated edge sources in the case where the labels
    are empty strings.

    git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@90254 91177308-0d34-0410-b5e6-96231b3b80d8

commit 8cb3747a8bb51ba03b38cf87e606e2bb33032d6e
Author: Dan Gohman <gohman@apple.com>
Date:   Tue Dec 1 19:16:15 2009 +0000

    Minor cleanups.

    git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@90253 91177308-0d34-0410-b5e6-96231b3b80d8

commit 0bf95848e06bdfa04ec8a28cc22730ae139b9786
Author: Dan Gohman <gohman@apple.com>
Date:   Tue Dec 1 19:13:27 2009 +0000

    Trim an unnecessary #include.

    git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@90252 91177308-0d34-0410-b5e6-96231b3b80d8

commit 584f5f5e52830802e809b1c03c48de7dcdf87c4a
Author: Daniel Dunbar <daniel@zuster.org>
Date:   Tue Dec 1 19:11:36 2009 +0000

    Don't default warnings to ON on MSVC, the spew is enough to triple the build time. :/

    git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@90251 91177308-0d34-0410-b5e6-96231b3b80d8

commit 67533ab25e3fd9b66779dee173f5cb3cfb93cb99
Author: Devang Patel <dpatel@apple.com>
Date:   Tue Dec 1 18:13:48 2009 +0000

    Clear function specific containers while processing end of a function, even if DW_TAG_subprogram for current function is not found.

    git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@90247 91177308-0d34-0410-b5e6-96231b3b80d8

commit a0fb7c4e1ae9b7c87037bc6a72adce439d23484c
Author: Jim Grosbach <grosbach@apple.com>
Date:   Tue Dec 1 18:10:36 2009 +0000

    Thumb1 exception handling setjmp

    git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@90246 91177308-0d34-0410-b5e6-96231b3b80d8

commit 6e1b1ad3abeb24f6da12afe63ac7a1074c1e3dbf
Author: Johnny Chen <johnny.chen@apple.com>
Date:   Tue Dec 1 17:37:06 2009 +0000

    For VLDM/VSTM (Advanced SIMD), set encoding bits Inst{11-8} to 0b1011.

    git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@90243 91177308-0d34-0410-b5e6-96231b3b80d8

commit 9a929cf5ff12aac2838d89389e1a90fceb731437
Author: Jakob Stoklund Olesen <stoklund@2pi.dk>
Date:   Tue Dec 1 17:13:31 2009 +0000

    Move PHIElimination::isLiveOut method to LiveVariables.

    We want LiveVariables clients to use methods rather than accessing the
    getVarInfo data structure directly. That way it will be possible to change the
    LiveVariables representation.

    git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@90240 91177308-0d34-0410-b5e6-96231b3b80d8

commit cdb7736af562a153a1a3821737ec86876f0a817e
Author: Gabor Greif <ggreif@gmail.com>
Date:   Tue Dec 1 15:53:33 2009 +0000

    typo

    git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@90236 91177308-0d34-0410-b5e6-96231b3b80d8

commit f3798876dfe29818e97cff43cba6785648253867
Author: Gabor Greif <ggreif@gmail.com>
Date:   Tue Dec 1 12:53:56 2009 +0000

    demonstrate usage of Cases() mapping several strings to the same value; remove trailing spaces

    git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@90230 91177308-0d34-0410-b5e6-96231b3b80d8

commit 24dd55c3e41c2d655eefe760c446d9e24e44c287
Author: Mikhail Glushenkov <foldr@codedgers.com>
Date:   Tue Dec 1 09:47:11 2009 +0000

    Add relocation model options.

    git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@90222 91177308-0d34-0410-b5e6-96231b3b80d8

commit 977dffe8fde833b6c312d14b40d619e33d6ba866
Author: Mikhail Glushenkov <foldr@codedgers.com>
Date:   Tue Dec 1 09:19:09 2009 +0000

    Typo.

    git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@90221 91177308-0d34-0410-b5e6-96231b3b80d8

commit 825f4e1e87f1afff90a026ffe0876eff313bcf56
Author: Tobias Grosser <grosser@fim.uni-passau.de>
Date:   Tue Dec 1 08:43:33 2009 +0000

    Fix copy paste bug

    git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@90220 91177308-0d34-0410-b5e6-96231b3b80d8

commit bf50d21c781661a1637c48dbe4e2a412764729f3
Author: Chris Lattner <sabre@nondot.org>
Date:   Tue Dec 1 07:33:32 2009 +0000

    fix 255.vortex again, third time's the charm.

    git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@90217 91177308-0d34-0410-b5e6-96231b3b80d8

commit 39e844369d0a07edab15cf20037d6da328f8bd6c
Author: Chris Lattner <sabre@nondot.org>
Date:   Tue Dec 1 07:30:01 2009 +0000

    minimize this a bit more.

    git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@90216 91177308-0d34-0410-b5e6-96231b3b80d8

commit 488fe85c61807145b2d052a9104ceca80e17df74
Author: Mikhail Glushenkov <foldr@codedgers.com>
Date:   Tue Dec 1 06:51:30 2009 +0000

    Forward -save-temps to llvm-gcc.

    git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@90214 91177308-0d34-0410-b5e6-96231b3b80d8

commit 333b7e1d9e904eff9b98e20984cbd8439b86282f
Author: Chris Lattner <sabre@nondot.org>
Date:   Tue Dec 1 06:22:10 2009 +0000

    merge 2009-11-29-ReverseMap.ll into crash.ll

    git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@90212 91177308-0d34-0410-b5e6-96231b3b80d8

commit a0cb431faf56460af265f0d9b92b7d7e49eb75b4
Author: Chris Lattner <sabre@nondot.org>
Date:   Tue Dec 1 06:04:43 2009 +0000

    fix PR5640 by tracking whether a block is the header of a loop more
    precisely, which prevents us from infinitely peeling the loop.

    git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@90211 91177308-0d34-0410-b5e6-96231b3b80d8

commit 5a25c251af8588b170f76e7e479cdc947ca924e5
Author: Mikhail Glushenkov <foldr@codedgers.com>
Date:   Tue Dec 1 05:59:55 2009 +0000

    Support -[weak_]framework and -F in llvmc.

    git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@90210 91177308-0d34-0410-b5e6-96231b3b80d8

commit 6cb75ac35fdf87efaf27010947a6b19fae785ff4
Author: Eric Christopher <echristo@apple.com>
Date:   Tue Dec 1 03:18:26 2009 +0000

    Remove the gcc builtins from the intrinsics, we'll lower them
    explicitly so we can check arguments.

    git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@90199 91177308-0d34-0410-b5e6-96231b3b80d8

commit c79abe2ba9e6bd0909b9a00eddb54a8d500ec11c
Author: Jakob Stoklund Olesen <stoklund@2pi.dk>
Date:   Tue Dec 1 03:03:00 2009 +0000

    Use CFG connectedness as a secondary sort key when deciding the order of copy coalescing.

    This means that well connected blocks are copy coalesced before the less connected blocks. Connected blocks are more difficult to
    coalesce because intervals are more complicated, so handling them first gives a greater chance of success.

    git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@90194 91177308-0d34-0410-b5e6-96231b3b80d8

commit 1b958caea8cf2cd06c543188b32fd3f17bcd5652
Author: Eric Christopher <echristo@apple.com>
Date:   Tue Dec 1 02:26:01 2009 +0000

    Add a soft link so that in an apple style build we can find libLTO.dylib.

    git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@90189 91177308-0d34-0410-b5e6-96231b3b80d8

commit 3b581b33c31386a16bd1ae4ff121b0908e43c64a
Author: Oscar Fuentes <ofv@wanadoo.es>
Date:   Tue Dec 1 02:21:51 2009 +0000

    Add two CMake flags LLVM_ENABLE_PEDANTIC and LLVM_ENABLE_WERROR,
    PEDANTIC defaults to ON and WERROR default to off.

    Also add MSVC warnings. To disable warnings add the flags
    LLVM_ENABLE_WARNINGS (default on).

    Patch by Tobias Grosser!

    git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@90188 91177308-0d34-0410-b5e6-96231b3b80d8

commit d8bceade9b026d229b621399e196e8376396d0b7
Author: Chris Lattner <sabre@nondot.org>
Date:   Tue Dec 1 01:56:27 2009 +0000

    fix PR5649 by making fib use the JIT instead of the interpreter, patch by Perry Lorier!

    git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@90186 91177308-0d34-0410-b5e6-96231b3b80d8

commit b7aaf7b998d0006b775c3e494ea4b6d614f3ef81
Author: Dan Gohman <gohman@apple.com>
Date:   Tue Dec 1 01:38:10 2009 +0000

    Add a comment about A[i+(j+1)].

    git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@90185 91177308-0d34-0410-b5e6-96231b3b80d8

commit 05837cdf183324700fbe8231a655e9f7101057c6
Author: Bill Wendling <isanbard@gmail.com>
Date:   Tue Dec 1 00:59:58 2009 +0000

    Remove some validation errors.

    git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@90184 91177308-0d34-0410-b5e6-96231b3b80d8

commit d90060edfdeaadf4563de2521221c201924e1790
Author: Bill Wendling <isanbard@gmail.com>
Date:   Tue Dec 1 00:53:11 2009 +0000

    Some formatting and spelling fixes.

    git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@90182 91177308-0d34-0410-b5e6-96231b3b80d8

commit af20e7cfb5d44c7a0caad3a152978fcca1f4b438
Author: Dan Gohman <gohman@apple.com>
Date:   Tue Dec 1 00:45:56 2009 +0000

    Devang pointed out that this code should use DIScope instead of
    DICompileUnit. This code now prints debug filenames successfully.

    git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@90181 91177308-0d34-0410-b5e6-96231b3b80d8

commit 1e99614c66e92b4f6c26531b8c84e0f42a35c902
Author: Evan Cheng <evan.cheng@apple.com>
Date:   Tue Dec 1 00:44:45 2009 +0000

    Fix PR5614: parts of a physical register def may be killed the rest.

    git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@90180 91177308-0d34-0410-b5e6-96231b3b80d8

commit de4b5d00385da6273b0902e9385928b99aeda670
Author: Devang Patel <dpatel@apple.com>
Date:   Tue Dec 1 00:13:06 2009 +0000

    Test case for r90175.

    git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@90176 91177308-0d34-0410-b5e6-96231b3b80d8

commit cf4fad276042adc440ff0d119b9fb67a94814ccf
Author: Johnny Chen <johnny.chen@apple.com>
Date:   Tue Dec 1 00:02:02 2009 +0000

    For VMOV (immediate), make some of the encoding bits (cmode and op) unspecified.
    For VMOVv*i[16,32], op bit is don't care, and some cmode bits vary depending on
    the immediate values.

    Ref: Table A7-15 Modified immediate values for Advanced SIMD instructions.

    git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@90173 91177308-0d34-0410-b5e6-96231b3b80d8

commit 76b806763b89ea64337bd967614662a72f237191
Author: Devang Patel <dpatel@apple.com>
Date:   Mon Nov 30 23:56:56 2009 +0000

    If pointer type has a name then do not ignore the name.

    git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@90172 91177308-0d34-0410-b5e6-96231b3b80d8

commit 63c90f69fe61ee5b0ff0ee8acf73274452da933e
Author: Oscar Fuentes <ofv@wanadoo.es>
Date:   Mon Nov 30 23:50:14 2009 +0000

    * CMakeLists.txt: Adds warnings flags for g++. Fixes PR 5647.

    git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@90170 91177308-0d34-0410-b5e6-96231b3b80d8

commit a86f9f058bf09127b7cf306770c353a6ffc41b3f
Author: Oscar Fuentes <ofv@wanadoo.es>
Date:   Mon Nov 30 23:48:51 2009 +0000

    * cmake/modules/LLVMLibDeps.cmake: Updated library dependencies.

    git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@90169 91177308-0d34-0410-b5e6-96231b3b80d8

commit 26219b78e2e252a08c7c59aceb05a86751cdf20e
Author: Dan Gohman <gohman@apple.com>
Date:   Mon Nov 30 23:33:53 2009 +0000

    Minor whitespace fixes.

    git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@90166 91177308-0d34-0410-b5e6-96231b3b80d8

commit 66fe2bca32f043bf5bd15c732c80627621d7abb7
Author: Dan Gohman <gohman@apple.com>
Date:   Mon Nov 30 23:33:37 2009 +0000

    Fix a minor inconsistency.

    git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@90165 91177308-0d34-0410-b5e6-96231b3b80d8

commit 1ff03c6950bb5ed48831ad9cd6b53fcd9fe7dfa8
Author: Dan Gohman <gohman@apple.com>
Date:   Mon Nov 30 23:30:43 2009 +0000

    Fix typos in comments.

    git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@90164 91177308-0d34-0410-b5e6-96231b3b80d8

commit c6e14f94aae2689841a94bc7aa059a8771e53867
Author: Jakob Stoklund Olesen <stoklund@2pi.dk>
Date:   Mon Nov 30 22:55:54 2009 +0000

    New virtual registers created for spill intervals should inherit allocation hints from the original register.

    This helps us avoid silly copies when rematting values that are copied to a physical register:

    leaq	_.str44(%rip), %rcx
    movq	%rcx, %rsi
    call	_strcmp

    becomes:

    leaq	_.str44(%rip), %rsi
    call	_strcmp

    The coalescer will not touch the movq because that would tie down the physical register.

    git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@90163 91177308-0d34-0410-b5e6-96231b3b80d8

commit 180e3e4b507427ba5d81408a064adc5a3055557f
Author: Bill Wendling <isanbard@gmail.com>
Date:   Mon Nov 30 22:23:29 2009 +0000

    Debug info is disabled on PPC Darwin.

    git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@90160 91177308-0d34-0410-b5e6-96231b3b80d8

commit 3d0daa24dde6984c75c7fe1933653429169418f4
Author: Bob Wilson <bob.wilson@apple.com>
Date:   Mon Nov 30 18:56:45 2009 +0000

    Reprioritize tests for tail duplication to be aggressive about indirect
    branches even when optimizing for code size.  Unless we find evidence to the
    contrary in the future, the special treatment for indirect branches does not
    have a significant effect on code size, and performance still matters with -Os.

    git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@90147 91177308-0d34-0410-b5e6-96231b3b80d8

commit 90868102bf6144cae08570ddcb96099d9d63c06d
Author: Bob Wilson <bob.wilson@apple.com>
Date:   Mon Nov 30 18:35:03 2009 +0000

    Remove isProfitableToDuplicateIndirectBranch target hook.  It is profitable
    for all the processors where I have tried it, and even when it might not help
    performance, the cost is quite low.  The opportunities for duplicating
    indirect branches are limited by other factors so code size does not change
    much due to tail duplicating indirect branches aggressively.

    git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@90144 91177308-0d34-0410-b5e6-96231b3b80d8

commit 3bff42e81121019af3ba61a13f087bba6ed37c54
Author: Bob Wilson <bob.wilson@apple.com>
Date:   Mon Nov 30 17:47:19 2009 +0000

    Fix some more ARM unified syntax warnings.

    git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@90141 91177308-0d34-0410-b5e6-96231b3b80d8

commit 49462255e92b03de36a013dd23845d9c8e35821c
Author: Benjamin Kramer <benny.kra@googlemail.com>
Date:   Mon Nov 30 15:52:29 2009 +0000

    Fix odd declaration.

    git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@90138 91177308-0d34-0410-b5e6-96231b3b80d8

commit bf4ea99c2887e55d18206e093bccdc43636c9b1b
Author: Tobias Grosser <grosser@fim.uni-passau.de>
Date:   Mon Nov 30 13:34:51 2009 +0000

    Fix last DOTGraphTraits problems in CompilationGraph.

    git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@90136 91177308-0d34-0410-b5e6-96231b3b80d8

commit f9b1114ae03b624deb0ed6e6d1bb26cc2cd2685e
Author: Tobias Grosser <grosser@fim.uni-passau.de>
Date:   Mon Nov 30 13:14:13 2009 +0000

    Remove forgotten ShortNames in Trie and CompilationGraph

    git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@90135 91177308-0d34-0410-b5e6-96231b3b80d8

commit 810b18c4cc8b022f79f0dd886cc9092a3e4f6d2c
Author: Tobias Grosser <grosser@fim.uni-passau.de>
Date:   Mon Nov 30 12:38:47 2009 +0000

    Remove ShortNames from getNodeLabel in DOTGraphTraits

    git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@90134 91177308-0d34-0410-b5e6-96231b3b80d8

commit e2c3aec2cf16ee6ea233d3ec13a83e71e21523b9
Author: Tobias Grosser <grosser@fim.uni-passau.de>
Date:   Mon Nov 30 12:38:13 2009 +0000

    Instantiate DefaultDOTGraphTraits

    git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@90133 91177308-0d34-0410-b5e6-96231b3b80d8

commit fd748c9df057cd33fe255b9ff81e720518f82cb3
Author: Tobias Grosser <grosser@fim.uni-passau.de>
Date:   Mon Nov 30 12:37:39 2009 +0000

    Do not point edge heads to source labels

    If no destination label is available, just point to the node itself
    instead of pointing to some source label. Source and destination labels are
    not related in any way.

    git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@90132 91177308-0d34-0410-b5e6-96231b3b80d8

commit 989dd8528652afdfcf5125f7d206bc0f075861e7
Author: Tobias Grosser <grosser@fim.uni-passau.de>
Date:   Mon Nov 30 12:24:40 2009 +0000

    Only print edgeSourceLabels if they are not empty

    Graphviz can layout the graphs better if a node does not contain source
    ports. Therefore only print the ports if the source ports are useful,
    that means are not labeled with the empty string "".
    This patch also simplifies graphs without any edgeSourceLabels e.g. the
    dominance trees.

    git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@90131 91177308-0d34-0410-b5e6-96231b3b80d8

commit 6d6054ab3ef09773025dbcee2b923913a73a919d
Author: Tobias Grosser <grosser@fim.uni-passau.de>
Date:   Mon Nov 30 12:06:37 2009 +0000

    Small PostDominatorTree improvements

     * Do not SEGFAULT if tree entryNode() is NULL
     * Print function names in dotty printer

    git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@90130 91177308-0d34-0410-b5e6-96231b3b80d8

commit e148e0b0e803768e12df1884159f143bf08f6e40
Author: Tobias Grosser <grosser@fim.uni-passau.de>
Date:   Mon Nov 30 11:55:24 2009 +0000

    Remove ":" after BB name in -view-cfg-only

    git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@90129 91177308-0d34-0410-b5e6-96231b3b80d8

commit 767a372b1df0e26fbbe0dd8d3667e85d98c91109
Author: Eric Christopher <echristo@apple.com>
Date:   Mon Nov 30 08:03:53 2009 +0000

    First pass at llvm.objectsize documentation.

    git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@90116 91177308-0d34-0410-b5e6-96231b3b80d8

commit d9ae7435b67e6375d2e72cb4bd43955c0a58edad
Author: Nick Lewycky <nicholas@mxc.ca>
Date:   Mon Nov 30 07:05:51 2009 +0000

    Revert r90107, fixing test/Transforms/GVN/2009-11-29-ReverseMap.ll and the
    llvm-gcc build.

    git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@90113 91177308-0d34-0410-b5e6-96231b3b80d8

commit 30a3e84e9b7aca47aaee2ed11bc20cf6336bd189
Author: Nick Lewycky <nicholas@mxc.ca>
Date:   Mon Nov 30 07:02:18 2009 +0000

    Add a testcase for the current llvm-gcc build failure.

    git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@90112 91177308-0d34-0410-b5e6-96231b3b80d8

commit 21c4cada89c23d0c6c943d7044d045c279804c05
Author: Nick Lewycky <nicholas@mxc.ca>
Date:   Mon Nov 30 04:23:17 2009 +0000

    Remove the 'simple jit' tutorial as it wasn't really being maintained and its
    material is covered by the Kaleidoscope tutorial.

    git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@90111 91177308-0d34-0410-b5e6-96231b3b80d8

commit f950eb5454f482bc93a1d58b179f3e9be707e686
Author: Mon P Wang <wangmp@apple.com>
Date:   Mon Nov 30 02:42:27 2009 +0000

    Add test case for r90108

    git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@90109 91177308-0d34-0410-b5e6-96231b3b80d8

commit c707f3ff7cdb427155b7ca707a3efd2c8b34bcd1
Author: Mon P Wang <wangmp@apple.com>
Date:   Mon Nov 30 02:42:02 2009 +0000

    Added support to allow clients to custom widen. For X86, custom widen vectors for
    divide/remainder since these operations can trap by unroll them and adding undefs
    for the resulting vector.

    git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@90108 91177308-0d34-0410-b5e6-96231b3b80d8

commit e1f454174e8ad32da74193471ca079a12c2bb18d
Author: Chris Lattner <sabre@nondot.org>
Date:   Mon Nov 30 02:26:29 2009 +0000

    reapply r90093 with an addition of keeping the forward
    and reverse nonlocal memdep maps in synch, this should
    fix 255.vortex.

    git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@90107 91177308-0d34-0410-b5e6-96231b3b80d8

commit bfd72282b887511b8d0859777a6ca9851e062a85
Author: Nick Lewycky <nicholas@mxc.ca>
Date:   Mon Nov 30 02:23:57 2009 +0000

    Fix this test on 64-bit systems which seem to use i64 for gep indices sometimes
    while 32-bit gcc uses i32.

    git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@90106 91177308-0d34-0410-b5e6-96231b3b80d8

commit f215dece88649838a64b0d7740184713c487cf54
Author: Nick Lewycky <nicholas@mxc.ca>
Date:   Mon Nov 30 00:38:56 2009 +0000

    Commit r90099 made LLVM simplify one of these constant expressions a little
    more. Update the syntax we're checking for and filecheckize it too.

    This will fix the selfhost buildbots but will 'break' the others (sigh) because
    they're still linked against older LLVM which is emitting less optimized IR.

    git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@90104 91177308-0d34-0410-b5e6-96231b3b80d8

commit 0425dc773b82135ec8b6e5e6a5140c06de86c6ce
Author: Nick Lewycky <nicholas@mxc.ca>
Date:   Sun Nov 29 21:40:55 2009 +0000

    Teach ConstantFolding to do a better job when folding gep(bitcast).

    This permits the devirtualization of llvm.org/PR3100#c9 when compiled by clang.

    git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@90099 91177308-0d34-0410-b5e6-96231b3b80d8

commit c04f8adbc1539eb593879d8e0f8977ac5155e605
Author: Benjamin Kramer <benny.kra@googlemail.com>
Date:   Sun Nov 29 21:17:48 2009 +0000

    Revert r90089 for now, it's breaking selfhost.

    git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@90097 91177308-0d34-0410-b5e6-96231b3b80d8

commit 9b4ba06f907aac7ef1991e339ff4c262a301047f
Author: Chris Lattner <sabre@nondot.org>
Date:   Sun Nov 29 21:14:59 2009 +0000

    revert this patch for now, it causes failures of:
        LLVM::Transforms/GVN/2009-02-17-LoadPRECrash.ll
        LLVM::Transforms/GVN/2009-06-17-InvalidPRE.ll

    git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@90096 91177308-0d34-0410-b5e6-96231b3b80d8

commit 02507fdead4d86a04c1c914549b2d2ab295c47c7
Author: Chris Lattner <sabre@nondot.org>
Date:   Sun Nov 29 21:09:36 2009 +0000

    Fix a really nasty caching bug I introduced in memdep.  An entry
    was being added to the Result vector, but not being put in the
    cache.  This means that if the cache was reused wholesale for a
    later query that it would be missing this entry and we'd do an
    incorrect load elimination.

    Unfortunately, it's not really possible to write a useful
    testcase for this, but this unbreaks 255.vortex.

    git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@90093 91177308-0d34-0410-b5e6-96231b3b80d8

commit 7719b59199b6920ada130675f658bf3ec8521cd6
Author: Benjamin Kramer <benny.kra@googlemail.com>
Date:   Sun Nov 29 20:29:30 2009 +0000

    Fix two FIXMEs.

    git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@90089 91177308-0d34-0410-b5e6-96231b3b80d8

commit eac76e8c39d2f6370692677fdfc59c7d62e29e07
Author: Nick Lewycky <nicholas@mxc.ca>
Date:   Sun Nov 29 18:10:39 2009 +0000

    Detabify.

    git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@90085 91177308-0d34-0410-b5e6-96231b3b80d8

commit 9e73b69d560efe55408748561f294bfed36d7079
Author: Benjamin Kramer <benny.kra@googlemail.com>
Date:   Sun Nov 29 17:42:58 2009 +0000

    Remove dead returns.

    git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@90083 91177308-0d34-0410-b5e6-96231b3b80d8

commit cfd64f93fe4a893fe6ffda056c825d0a9e3f272a
Author: Kovarththanan Rajaratnam <kovarththanan.rajaratnam@gmail.com>
Date:   Sun Nov 29 17:19:48 2009 +0000

    This patch ensures that Path::GetMainExecutable is able to handle the
    case where realpath() fails. When this occurs we segfault trying to
    create a std::string from a NULL pointer.

    Fixes PR5635.

    git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@90082 91177308-0d34-0410-b5e6-96231b3b80d8

commit 7143f3420c2832c342182ec8e5b87a4e5a19f99c
Author: Daniel Dunbar <daniel@zuster.org>
Date:   Sun Nov 29 08:30:24 2009 +0000

    Fix FileCheck crash when fuzzy scanning starting at the end of the file.

    git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@90065 91177308-0d34-0410-b5e6-96231b3b80d8

commit dbbf1b238bc38c26fc4f7b53a26e0d0538880d8a
Author: Chris Lattner <sabre@nondot.org>
Date:   Sun Nov 29 02:57:29 2009 +0000

    add testcases for the foo_with_overflow op xforms added recently and
    fix bugs exposed by the tests.  Testcases from Alastair Lynn!

    git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@90056 91177308-0d34-0410-b5e6-96231b3b80d8

commit 565b96428b6e7af0b87275a81471c5395fcbdc16
Author: Chris Lattner <sabre@nondot.org>
Date:   Sun Nov 29 02:44:33 2009 +0000

    mark all the 'foo with overflow' intrinsics as readnone.

    git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@90055 91177308-0d34-0410-b5e6-96231b3b80d8

commit 8aa4c019b5bb50ba9a3a5e2188a64081beb2f02b
Author: Chris Lattner <sabre@nondot.org>
Date:   Sun Nov 29 02:19:52 2009 +0000

    update and consolidate the load pre notes.

    git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@90050 91177308-0d34-0410-b5e6-96231b3b80d8

commit 6756dffb3a4685abfaa0455078c4d8f4c33ddc28
Author: Chris Lattner <sabre@nondot.org>
Date:   Sun Nov 29 01:28:58 2009 +0000

    add PR#

    git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@90049 91177308-0d34-0410-b5e6-96231b3b80d8

commit ea7509881f1e6d5efaa80638b0a5ab5290c77651
Author: Chris Lattner <sabre@nondot.org>
Date:   Sun Nov 29 01:15:43 2009 +0000

    Add a testcase for:

    void test(int N, double* G) {
      long j;
      for (j = 1; j < N - 1; j++)
          G[j] = G[j] + G[j+1] + G[j-1];
    }

    which we now compile to one load in the loop:

    LBB1_2:                                                     ## %bb
    	movsd	16(%rsi,%rax,8), %xmm2
    	incq	%rdx
    	addsd	%xmm2, %xmm1
    	addsd	%xmm1, %xmm0
    	movapd	%xmm2, %xmm1
    	movsd	%xmm0, 8(%rsi,%rax,8)
    	incq	%rax
    	cmpq	%rcx, %rax
    	jne	LBB1_2

    instead of:

    LBB1_2:                                                     ## %bb
    	movsd	8(%rsi,%rax,8), %xmm0
    	addsd	16(%rsi,%rax,8), %xmm0
    	addsd	(%rsi,%rax,8), %xmm0
    	movsd	%xmm0, 8(%rsi,%rax,8)
    	incq	%rax
    	cmpq	%rcx, %rax
    	jne	LBB1_2

    git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@90048 91177308-0d34-0410-b5e6-96231b3b80d8

commit 96bd9d9931be198b46c3197b67ed02aefc734bd4
Author: Chris Lattner <sabre@nondot.org>
Date:   Sun Nov 29 01:04:40 2009 +0000

    add a testcase for

    void test9(int N, double* G) {
      long j;
      for (j = 1; j < N - 1; j++)
          G[j+1] = G[j] + G[j+1];
    }

    git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@90047 91177308-0d34-0410-b5e6-96231b3b80d8

commit 163e6ab29947e801b555e688e19af8460c8c7903
Author: Chris Lattner <sabre@nondot.org>
Date:   Sun Nov 29 00:51:17 2009 +0000

    Implement PR5634.

    git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@90046 91177308-0d34-0410-b5e6-96231b3b80d8

commit 2dbc3f24619726bb5def46ed36116ed5bbb2ac85
Author: Nick Lewycky <nicholas@mxc.ca>
Date:   Sat Nov 28 21:27:49 2009 +0000

    Teach memdep to look for memory use intrinsics during dependency queries. Fixes
    PR5574.

    git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@90045 91177308-0d34-0410-b5e6-96231b3b80d8

commit 80c535b9194e1ce2927ca9b55d010a8fcb5833b3
Author: Chris Lattner <sabre@nondot.org>
Date:   Sat Nov 28 16:08:18 2009 +0000

    reenable load address insertion in load pre.  This allows us to
    handle cases like this:
    void test(int N, double* G) {
      long j;
      for (j = 1; j < N - 1; j++)
          G[j+1] = G[j] + G[j+1];
    }

    where G[1] isn't live into the loop.

    git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@90041 91177308-0d34-0410-b5e6-96231b3b80d8

commit 1c2de2bd49cd56c50c9251f22727a126dea78f43
Author: Chris Lattner <sabre@nondot.org>
Date:   Sat Nov 28 15:39:14 2009 +0000

    Enhance InsertPHITranslatedPointer to be able to return a list of newly
    inserted instructions.  No functionality change until someone starts using it.

    git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@90039 91177308-0d34-0410-b5e6-96231b3b80d8

commit c343983d722c5552dea693c85bf62406217dc097
Author: Chris Lattner <sabre@nondot.org>
Date:   Sat Nov 28 15:12:41 2009 +0000

    implement a FIXME: limit the depth that DecomposeGEPExpression goes the same
    way that getUnderlyingObject does it.

    This fixes the 'DecomposeGEPExpression and getUnderlyingObject disagree!'
    assertion on sqlite3.

    git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@90038 91177308-0d34-0410-b5e6-96231b3b80d8

commit ed81875b336e7ec36612a2ae49fbbdf7867f08d2
Author: Chris Lattner <sabre@nondot.org>
Date:   Sat Nov 28 14:54:10 2009 +0000

    enable code to handle un-phi-translatable cases more aggressively:
    if we don't have an address expression available in a predecessor,
    then model this as the value being clobbered at the end of the pred
    block instead of being modeled as a complete phi translation failure.
    This is important for PRE of loads because we want to see that the
    load is available in all but this predecessor, and complete phi
    translation failure results in not getting any information about
    predecessors.

    This doesn't do anything until I renable code insertion since PRE
    now sees that it is available in all but one predecessors, but can't
    insert the addressing in the predecessor that is missing it to
    eliminate the redundancy.

    git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@90037 91177308-0d34-0410-b5e6-96231b3b80d8

commit de0b030de1873764c1f3571b75b5f75125ac35f8
Author: Chris Lattner <sabre@nondot.org>
Date:   Fri Nov 27 22:50:07 2009 +0000

    disable value insertion for now, I need to figure out how
    to inform GVN about the newly inserted values.  This fixes
    PR5631.

    git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@90022 91177308-0d34-0410-b5e6-96231b3b80d8

commit a5bef157088fc71eeb2a968272d270cb94169524
Author: Chris Lattner <sabre@nondot.org>
Date:   Fri Nov 27 22:05:15 2009 +0000

    Rework InsertPHITranslatedPointer to handle the recursive case, this
    fixes PR5630 and sets the stage for the next phase of goodness (testcase
    pending).

    git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@90019 91177308-0d34-0410-b5e6-96231b3b80d8

commit 3037e0ade3201ff57bc4f486e7dfacc6b7459d47
Author: Chris Lattner <sabre@nondot.org>
Date:   Fri Nov 27 20:25:30 2009 +0000

    recursively phi translate bitcast operands too, for consistency.

    git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@90016 91177308-0d34-0410-b5e6-96231b3b80d8

commit e386372015e237a1e98f843920cf8d6449e0b444
Author: Nick Lewycky <nicholas@mxc.ca>
Date:   Fri Nov 27 19:57:53 2009 +0000

    Oops! Fix bug introduced in my recent cleanup change. Thanks to Tobias Grosser
    for pointing this out.

    git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@90015 91177308-0d34-0410-b5e6-96231b3b80d8

commit 0c40e546d78a7f0cb9e42588afcd8a664a816108
Author: Chris Lattner <sabre@nondot.org>
Date:   Fri Nov 27 19:56:00 2009 +0000

    I accidentally implemented this :)

    git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@90014 91177308-0d34-0410-b5e6-96231b3b80d8

commit d91a9144369b73ed3e066695ad922abc76b5f7de
Author: Chris Lattner <sabre@nondot.org>
Date:   Fri Nov 27 19:11:31 2009 +0000

    add support for recursive phi translation and phi
    translation of add with immediate.  This allows us
    to optimize this function:

    void test(int N, double* G) {
      long j;
      G[1] = 1;
        for (j = 1; j < N - 1; j++)
            G[j+1] = G[j] + G[j+1];
    }

    to only do one load every iteration of the loop.

    git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@90013 91177308-0d34-0410-b5e6-96231b3b80d8

commit f198db016d5b8c1fb5f225f644efb5f5198c2471
Author: Chris Lattner <sabre@nondot.org>
Date:   Fri Nov 27 18:08:30 2009 +0000

    add two simple test cases we now optimize (to one load in the loop each) and one we don't (corresponding to the fixme I added yesterday).

    git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@90012 91177308-0d34-0410-b5e6-96231b3b80d8

commit 96076f73dbddf62f2bed35458afc5fbd5628a5e2
Author: Chris Lattner <sabre@nondot.org>
Date:   Fri Nov 27 17:42:22 2009 +0000

    factor some logic out of instcombine into a new SimplifyAddInst method.

    git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@90011 91177308-0d34-0410-b5e6-96231b3b80d8

commit 15aec3314b05e3d68f73fcc95b88fd4b9baad6b3
Author: Chris Lattner <sabre@nondot.org>
Date:   Fri Nov 27 17:12:30 2009 +0000

    add a deadargelim note.

    git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@90009 91177308-0d34-0410-b5e6-96231b3b80d8

commit 7d147914a609049f7cda4a5c5ee8ee8abbde4782
Author: Chris Lattner <sabre@nondot.org>
Date:   Fri Nov 27 16:53:57 2009 +0000

    This testcase is actually only partially redundant, and requires
    the FIXME I added yesterday to be implemented.

    git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@90008 91177308-0d34-0410-b5e6-96231b3b80d8

commit 8c800c00ef9a6054218b11e5e1d65205b1297115
Author: Chris Lattner <sabre@nondot.org>
Date:   Fri Nov 27 16:37:41 2009 +0000

    fix PR5436 by making the 'simple' case of SRoA not promote out of range
    array indexes.  The "complex" case of SRoA still handles them, and correctly.

    This fixes a weirdness where we'd correctly avoid transforming A[0][42] if
    the 42 was too large, but we'd only do it if it was one gep, not two separate
    ones.

    git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@90007 91177308-0d34-0410-b5e6-96231b3b80d8

commit 3ad93b0636e31b90c74c658673130d1b6a4ffd8e
Author: Chris Lattner <sabre@nondot.org>
Date:   Fri Nov 27 16:31:59 2009 +0000

    filecheckize

    git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@90006 91177308-0d34-0410-b5e6-96231b3b80d8

commit 1da9984b8f8bec04ec77e96ea4b9e1b358f9f4a2
Author: Duncan Sands <baldrick@free.fr>
Date:   Fri Nov 27 16:04:14 2009 +0000

    While this test is testing a problem in the generic part of codegen,
    the problem only shows for msp430 and pic16 which is why it specifies
    them using -march.  But it is wrong to put such tests in CodeGen/Generic,
    since not everyone builds these targets.  Put a copy of the test in each
    of the target test directories.

    git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@90005 91177308-0d34-0410-b5e6-96231b3b80d8

commit 87598b02a90f8027b59afb1433ae3e828e19c72a
Author: Duncan Sands <baldrick@free.fr>
Date:   Fri Nov 27 13:38:03 2009 +0000

    Vector types are no longer required to have a power-of-two length.

    git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@90004 91177308-0d34-0410-b5e6-96231b3b80d8

commit 59b538afbdb86d62b1caa0f549401cb1583101fa
Author: Duncan Sands <baldrick@free.fr>
Date:   Fri Nov 27 12:33:22 2009 +0000

    These code generator limitations have been removed.

    git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@90003 91177308-0d34-0410-b5e6-96231b3b80d8
2009-12-12 15:14:39 +02:00

576 lines
20 KiB
Python
Executable file

#!/usr/bin/env python
"""
lit - LLVM Integrated Tester.
See lit.pod for more information.
"""
import math, os, platform, random, re, sys, time, threading, traceback
import ProgressBar
import TestRunner
import Util
from TestingConfig import TestingConfig
import LitConfig
import Test
# Configuration files to look for when discovering test suites. These can be
# overridden with --config-prefix.
#
# FIXME: Rename to 'config.lit', 'site.lit', and 'local.lit' ?
gConfigName = 'lit.cfg'
gSiteConfigName = 'lit.site.cfg'
kLocalConfigName = 'lit.local.cfg'
class TestingProgressDisplay:
def __init__(self, opts, numTests, progressBar=None):
self.opts = opts
self.numTests = numTests
self.current = None
self.lock = threading.Lock()
self.progressBar = progressBar
self.completed = 0
def update(self, test):
# Avoid locking overhead in quiet mode
if self.opts.quiet and not test.result.isFailure:
self.completed += 1
return
# Output lock.
self.lock.acquire()
try:
self.handleUpdate(test)
finally:
self.lock.release()
def finish(self):
if self.progressBar:
self.progressBar.clear()
elif self.opts.quiet:
pass
elif self.opts.succinct:
sys.stdout.write('\n')
def handleUpdate(self, test):
self.completed += 1
if self.progressBar:
self.progressBar.update(float(self.completed)/self.numTests,
test.getFullName())
if self.opts.succinct and not test.result.isFailure:
return
if self.progressBar:
self.progressBar.clear()
print '%s: %s (%d of %d)' % (test.result.name, test.getFullName(),
self.completed, self.numTests)
if test.result.isFailure and self.opts.showOutput:
print "%s TEST '%s' FAILED %s" % ('*'*20, test.getFullName(),
'*'*20)
print test.output
print "*" * 20
sys.stdout.flush()
class TestProvider:
def __init__(self, tests, maxTime):
self.maxTime = maxTime
self.iter = iter(tests)
self.lock = threading.Lock()
self.startTime = time.time()
def get(self):
# Check if we have run out of time.
if self.maxTime is not None:
if time.time() - self.startTime > self.maxTime:
return None
# Otherwise take the next test.
self.lock.acquire()
try:
item = self.iter.next()
except StopIteration:
item = None
self.lock.release()
return item
class Tester(threading.Thread):
def __init__(self, litConfig, provider, display):
threading.Thread.__init__(self)
self.litConfig = litConfig
self.provider = provider
self.display = display
def run(self):
while 1:
item = self.provider.get()
if item is None:
break
self.runTest(item)
def runTest(self, test):
result = None
startTime = time.time()
try:
result, output = test.config.test_format.execute(test,
self.litConfig)
except KeyboardInterrupt:
# This is a sad hack. Unfortunately subprocess goes
# bonkers with ctrl-c and we start forking merrily.
print '\nCtrl-C detected, goodbye.'
os.kill(0,9)
except:
if self.litConfig.debug:
raise
result = Test.UNRESOLVED
output = 'Exception during script execution:\n'
output += traceback.format_exc()
output += '\n'
elapsed = time.time() - startTime
test.setResult(result, output, elapsed)
self.display.update(test)
def dirContainsTestSuite(path):
cfgpath = os.path.join(path, gSiteConfigName)
if os.path.exists(cfgpath):
return cfgpath
cfgpath = os.path.join(path, gConfigName)
if os.path.exists(cfgpath):
return cfgpath
def getTestSuite(item, litConfig, cache):
"""getTestSuite(item, litConfig, cache) -> (suite, relative_path)
Find the test suite containing @arg item.
@retval (None, ...) - Indicates no test suite contains @arg item.
@retval (suite, relative_path) - The suite that @arg item is in, and its
relative path inside that suite.
"""
def search1(path):
# Check for a site config or a lit config.
cfgpath = dirContainsTestSuite(path)
# If we didn't find a config file, keep looking.
if not cfgpath:
parent,base = os.path.split(path)
if parent == path:
return (None, ())
ts, relative = search(parent)
return (ts, relative + (base,))
# We found a config file, load it.
if litConfig.debug:
litConfig.note('loading suite config %r' % cfgpath)
cfg = TestingConfig.frompath(cfgpath, None, litConfig, mustExist = True)
source_root = os.path.realpath(cfg.test_source_root or path)
exec_root = os.path.realpath(cfg.test_exec_root or path)
return Test.TestSuite(cfg.name, source_root, exec_root, cfg), ()
def search(path):
# Check for an already instantiated test suite.
res = cache.get(path)
if res is None:
cache[path] = res = search1(path)
return res
# Canonicalize the path.
item = os.path.realpath(item)
# Skip files and virtual components.
components = []
while not os.path.isdir(item):
parent,base = os.path.split(item)
if parent == item:
return (None, ())
components.append(base)
item = parent
components.reverse()
ts, relative = search(item)
return ts, tuple(relative + tuple(components))
def getLocalConfig(ts, path_in_suite, litConfig, cache):
def search1(path_in_suite):
# Get the parent config.
if not path_in_suite:
parent = ts.config
else:
parent = search(path_in_suite[:-1])
# Load the local configuration.
source_path = ts.getSourcePath(path_in_suite)
cfgpath = os.path.join(source_path, kLocalConfigName)
if litConfig.debug:
litConfig.note('loading local config %r' % cfgpath)
return TestingConfig.frompath(cfgpath, parent, litConfig,
mustExist = False,
config = parent.clone(cfgpath))
def search(path_in_suite):
key = (ts, path_in_suite)
res = cache.get(key)
if res is None:
cache[key] = res = search1(path_in_suite)
return res
return search(path_in_suite)
def getTests(path, litConfig, testSuiteCache, localConfigCache):
# Find the test suite for this input and its relative path.
ts,path_in_suite = getTestSuite(path, litConfig, testSuiteCache)
if ts is None:
litConfig.warning('unable to find test suite for %r' % path)
return (),()
if litConfig.debug:
litConfig.note('resolved input %r to %r::%r' % (path, ts.name,
path_in_suite))
return ts, getTestsInSuite(ts, path_in_suite, litConfig,
testSuiteCache, localConfigCache)
def getTestsInSuite(ts, path_in_suite, litConfig,
testSuiteCache, localConfigCache):
# Check that the source path exists (errors here are reported by the
# caller).
source_path = ts.getSourcePath(path_in_suite)
if not os.path.exists(source_path):
return
# Check if the user named a test directly.
if not os.path.isdir(source_path):
lc = getLocalConfig(ts, path_in_suite[:-1], litConfig, localConfigCache)
yield Test.Test(ts, path_in_suite, lc)
return
# Otherwise we have a directory to search for tests, start by getting the
# local configuration.
lc = getLocalConfig(ts, path_in_suite, litConfig, localConfigCache)
# Search for tests.
for res in lc.test_format.getTestsInDirectory(ts, path_in_suite,
litConfig, lc):
yield res
# Search subdirectories.
for filename in os.listdir(source_path):
# FIXME: This doesn't belong here?
if filename in ('Output', '.svn') or filename in lc.excludes:
continue
# Ignore non-directories.
file_sourcepath = os.path.join(source_path, filename)
if not os.path.isdir(file_sourcepath):
continue
# Check for nested test suites, first in the execpath in case there is a
# site configuration and then in the source path.
file_execpath = ts.getExecPath(path_in_suite + (filename,))
if dirContainsTestSuite(file_execpath):
sub_ts, subiter = getTests(file_execpath, litConfig,
testSuiteCache, localConfigCache)
elif dirContainsTestSuite(file_sourcepath):
sub_ts, subiter = getTests(file_sourcepath, litConfig,
testSuiteCache, localConfigCache)
else:
# Otherwise, continue loading from inside this test suite.
subiter = getTestsInSuite(ts, path_in_suite + (filename,),
litConfig, testSuiteCache,
localConfigCache)
sub_ts = None
N = 0
for res in subiter:
N += 1
yield res
if sub_ts and not N:
litConfig.warning('test suite %r contained no tests' % sub_ts.name)
def runTests(numThreads, litConfig, provider, display):
# If only using one testing thread, don't use threads at all; this lets us
# profile, among other things.
if numThreads == 1:
t = Tester(litConfig, provider, display)
t.run()
return
# Otherwise spin up the testing threads and wait for them to finish.
testers = [Tester(litConfig, provider, display)
for i in range(numThreads)]
for t in testers:
t.start()
try:
for t in testers:
t.join()
except KeyboardInterrupt:
sys.exit(2)
def main():
global options
from optparse import OptionParser, OptionGroup
parser = OptionParser("usage: %prog [options] {file-or-path}")
parser.add_option("-j", "--threads", dest="numThreads", metavar="N",
help="Number of testing threads",
type=int, action="store", default=None)
parser.add_option("", "--config-prefix", dest="configPrefix",
metavar="NAME", help="Prefix for 'lit' config files",
action="store", default=None)
parser.add_option("", "--param", dest="userParameters",
metavar="NAME=VAL",
help="Add 'NAME' = 'VAL' to the user defined parameters",
type=str, action="append", default=[])
group = OptionGroup(parser, "Output Format")
# FIXME: I find these names very confusing, although I like the
# functionality.
group.add_option("-q", "--quiet", dest="quiet",
help="Suppress no error output",
action="store_true", default=False)
group.add_option("-s", "--succinct", dest="succinct",
help="Reduce amount of output",
action="store_true", default=False)
group.add_option("-v", "--verbose", dest="showOutput",
help="Show all test output",
action="store_true", default=False)
group.add_option("", "--no-progress-bar", dest="useProgressBar",
help="Do not use curses based progress bar",
action="store_false", default=True)
parser.add_option_group(group)
group = OptionGroup(parser, "Test Execution")
group.add_option("", "--path", dest="path",
help="Additional paths to add to testing environment",
action="append", type=str, default=[])
group.add_option("", "--vg", dest="useValgrind",
help="Run tests under valgrind",
action="store_true", default=False)
group.add_option("", "--vg-arg", dest="valgrindArgs", metavar="ARG",
help="Specify an extra argument for valgrind",
type=str, action="append", default=[])
group.add_option("", "--time-tests", dest="timeTests",
help="Track elapsed wall time for each test",
action="store_true", default=False)
group.add_option("", "--no-execute", dest="noExecute",
help="Don't execute any tests (assume PASS)",
action="store_true", default=False)
parser.add_option_group(group)
group = OptionGroup(parser, "Test Selection")
group.add_option("", "--max-tests", dest="maxTests", metavar="N",
help="Maximum number of tests to run",
action="store", type=int, default=None)
group.add_option("", "--max-time", dest="maxTime", metavar="N",
help="Maximum time to spend testing (in seconds)",
action="store", type=float, default=None)
group.add_option("", "--shuffle", dest="shuffle",
help="Run tests in random order",
action="store_true", default=False)
parser.add_option_group(group)
group = OptionGroup(parser, "Debug and Experimental Options")
group.add_option("", "--debug", dest="debug",
help="Enable debugging (for 'lit' development)",
action="store_true", default=False)
group.add_option("", "--show-suites", dest="showSuites",
help="Show discovered test suites",
action="store_true", default=False)
group.add_option("", "--no-tcl-as-sh", dest="useTclAsSh",
help="Don't run Tcl scripts using 'sh'",
action="store_false", default=True)
group.add_option("", "--repeat", dest="repeatTests", metavar="N",
help="Repeat tests N times (for timing)",
action="store", default=None, type=int)
parser.add_option_group(group)
(opts, args) = parser.parse_args()
if not args:
parser.error('No inputs specified')
if opts.configPrefix is not None:
global gConfigName, gSiteConfigName
gConfigName = '%s.cfg' % opts.configPrefix
gSiteConfigName = '%s.site.cfg' % opts.configPrefix
if opts.numThreads is None:
opts.numThreads = Util.detectCPUs()
inputs = args
# Create the user defined parameters.
userParams = {}
for entry in opts.userParameters:
if '=' not in entry:
name,val = entry,''
else:
name,val = entry.split('=', 1)
userParams[name] = val
# Create the global config object.
litConfig = LitConfig.LitConfig(progname = os.path.basename(sys.argv[0]),
path = opts.path,
quiet = opts.quiet,
useValgrind = opts.useValgrind,
valgrindArgs = opts.valgrindArgs,
useTclAsSh = opts.useTclAsSh,
noExecute = opts.noExecute,
debug = opts.debug,
isWindows = (platform.system()=='Windows'),
params = userParams)
# Load the tests from the inputs.
tests = []
testSuiteCache = {}
localConfigCache = {}
for input in inputs:
prev = len(tests)
tests.extend(getTests(input, litConfig,
testSuiteCache, localConfigCache)[1])
if prev == len(tests):
litConfig.warning('input %r contained no tests' % input)
# If there were any errors during test discovery, exit now.
if litConfig.numErrors:
print >>sys.stderr, '%d errors, exiting.' % litConfig.numErrors
sys.exit(2)
if opts.showSuites:
suitesAndTests = dict([(ts,[])
for ts,_ in testSuiteCache.values()
if ts])
for t in tests:
suitesAndTests[t.suite].append(t)
print '-- Test Suites --'
suitesAndTests = suitesAndTests.items()
suitesAndTests.sort(key = lambda (ts,_): ts.name)
for ts,ts_tests in suitesAndTests:
print ' %s - %d tests' %(ts.name, len(ts_tests))
print ' Source Root: %s' % ts.source_root
print ' Exec Root : %s' % ts.exec_root
# Select and order the tests.
numTotalTests = len(tests)
if opts.shuffle:
random.shuffle(tests)
else:
tests.sort(key = lambda t: t.getFullName())
if opts.maxTests is not None:
tests = tests[:opts.maxTests]
extra = ''
if len(tests) != numTotalTests:
extra = ' of %d' % numTotalTests
header = '-- Testing: %d%s tests, %d threads --'%(len(tests),extra,
opts.numThreads)
if opts.repeatTests:
tests = [t.copyWithIndex(i)
for t in tests
for i in range(opts.repeatTests)]
progressBar = None
if not opts.quiet:
if opts.succinct and opts.useProgressBar:
try:
tc = ProgressBar.TerminalController()
progressBar = ProgressBar.ProgressBar(tc, header)
except ValueError:
print header
progressBar = ProgressBar.SimpleProgressBar('Testing: ')
else:
print header
# Don't create more threads than tests.
opts.numThreads = min(len(tests), opts.numThreads)
startTime = time.time()
display = TestingProgressDisplay(opts, len(tests), progressBar)
provider = TestProvider(tests, opts.maxTime)
runTests(opts.numThreads, litConfig, provider, display)
display.finish()
if not opts.quiet:
print 'Testing Time: %.2fs'%(time.time() - startTime)
# Update results for any tests which weren't run.
for t in tests:
if t.result is None:
t.setResult(Test.UNRESOLVED, '', 0.0)
# List test results organized by kind.
hasFailures = False
byCode = {}
for t in tests:
if t.result not in byCode:
byCode[t.result] = []
byCode[t.result].append(t)
if t.result.isFailure:
hasFailures = True
# FIXME: Show unresolved and (optionally) unsupported tests.
for title,code in (('Unexpected Passing Tests', Test.XPASS),
('Failing Tests', Test.FAIL)):
elts = byCode.get(code)
if not elts:
continue
print '*'*20
print '%s (%d):' % (title, len(elts))
for t in elts:
print ' %s' % t.getFullName()
print
if opts.timeTests:
# Collate, in case we repeated tests.
times = {}
for t in tests:
key = t.getFullName()
times[key] = times.get(key, 0.) + t.elapsed
byTime = list(times.items())
byTime.sort(key = lambda (name,elapsed): elapsed)
if byTime:
Util.printHistogram(byTime, title='Tests')
for name,code in (('Expected Passes ', Test.PASS),
('Expected Failures ', Test.XFAIL),
('Unsupported Tests ', Test.UNSUPPORTED),
('Unresolved Tests ', Test.UNRESOLVED),
('Unexpected Passes ', Test.XPASS),
('Unexpected Failures', Test.FAIL),):
if opts.quiet and not code.isFailure:
continue
N = len(byCode.get(code,[]))
if N:
print ' %s: %d' % (name,N)
# If we encountered any additional errors, exit abnormally.
if litConfig.numErrors:
print >>sys.stderr, '\n%d error(s), exiting.' % litConfig.numErrors
sys.exit(2)
# Warn about warnings.
if litConfig.numWarnings:
print >>sys.stderr, '\n%d warning(s) in tests.' % litConfig.numWarnings
if hasFailures:
sys.exit(1)
sys.exit(0)
if __name__=='__main__':
# Bump the GIL check interval, its more important to get any one thread to a
# blocking operation (hopefully exec) than to try and unblock other threads.
import sys
sys.setcheckinterval(1000)
main()