mirror of
https://github.com/Cisco-Talos/clamav.git
synced 2025-11-07 11:31:00 +00:00
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
576 lines
20 KiB
Python
Executable file
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()
|