Evan Cheng [Tue, 16 Feb 2010 21:09:44 +0000 (21:09 +0000)]
Look for SSE and instructions of this form: (and x, (build_vector c1,c2,c3,c4)).
If there exists a use of a build_vector that's the bitwise complement of the mask,
then transform the node to
(and (xor x, (build_vector -1,-1,-1,-1)), (build_vector ~c1,~c2,~c3,~c4)).
Since this transformation is only useful when 1) the given build_vector will
become a load from constpool, and 2) (and (xor x -1), y) matches to a single
instruction, I decided this is appropriate as a x86 specific transformation.
rdar://
7323335
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@96389
91177308-0d34-0410-b5e6-
96231b3b80d8
Jim Grosbach [Tue, 16 Feb 2010 21:07:46 +0000 (21:07 +0000)]
Remove trailing whitespace
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@96388
91177308-0d34-0410-b5e6-
96231b3b80d8
Bob Wilson [Tue, 16 Feb 2010 21:06:42 +0000 (21:06 +0000)]
Rename SuccessorNumber to GetSuccessorNumber.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@96387
91177308-0d34-0410-b5e6-
96231b3b80d8
David Greene [Tue, 16 Feb 2010 20:50:18 +0000 (20:50 +0000)]
Add support for emitting non-temporal stores for DAGs marked
non-temporal. Fix from r96241 for botched encoding of MOVNTDQ.
Add documentation for !nontemporal metadata.
Add a simpler movnt testcase.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@96386
91177308-0d34-0410-b5e6-
96231b3b80d8
Bob Wilson [Tue, 16 Feb 2010 20:48:55 +0000 (20:48 +0000)]
Testcase for critical edge splitting with load PRE.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@96385
91177308-0d34-0410-b5e6-
96231b3b80d8
Jim Grosbach [Tue, 16 Feb 2010 20:42:29 +0000 (20:42 +0000)]
Update Thumb2 to not use CarryDefIsUnused or CarryDefIsUsed predicates, but
to have the predicate on the pattern itself instead. Support for the new
ISel. Remove definitions of CarryDefIsUnused and CarryDefIsUsed since they are
no longer used anywhere.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@96384
91177308-0d34-0410-b5e6-
96231b3b80d8
Jim Grosbach [Tue, 16 Feb 2010 20:35:59 +0000 (20:35 +0000)]
Remove redundant setting of Defs. CPSR is already marked by the block level set of Defs.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@96383
91177308-0d34-0410-b5e6-
96231b3b80d8
Dan Gohman [Tue, 16 Feb 2010 20:25:07 +0000 (20:25 +0000)]
Refactor rewriting for PHI nodes into a separate function.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@96382
91177308-0d34-0410-b5e6-
96231b3b80d8
Jim Grosbach [Tue, 16 Feb 2010 20:17:57 +0000 (20:17 +0000)]
First step in eliminating the CarryDefIsUnused and CarryDefIsUsed predicates.
They won't work with the new ISel mechanism, as Requires predicates are no
longer allowed to reference the node being selected. Moving the predicate to
the patterns instead solves the problem.
This patch handles ARM mode. Thumb2 will follow.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@96381
91177308-0d34-0410-b5e6-
96231b3b80d8
Johnny Chen [Tue, 16 Feb 2010 20:04:27 +0000 (20:04 +0000)]
Added for disassembly the following instructions:
o Store Return State (SRSW, SRS)
o Load/Store Coprocessor (LDC/STC and friends)
o MSR (immediate)
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@96380
91177308-0d34-0410-b5e6-
96231b3b80d8
Bob Wilson [Tue, 16 Feb 2010 19:51:59 +0000 (19:51 +0000)]
Split critical edges as needed for load PRE.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@96378
91177308-0d34-0410-b5e6-
96231b3b80d8
Bob Wilson [Tue, 16 Feb 2010 19:49:17 +0000 (19:49 +0000)]
Refactor to share code to find the position of a basic block successor in the
terminator's list of successors.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@96377
91177308-0d34-0410-b5e6-
96231b3b80d8
Dan Gohman [Tue, 16 Feb 2010 19:42:34 +0000 (19:42 +0000)]
Fix whitespace.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@96372
91177308-0d34-0410-b5e6-
96231b3b80d8
Kenneth Uildriks [Tue, 16 Feb 2010 19:28:02 +0000 (19:28 +0000)]
Function attributes have index ~0, not 0
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@96370
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Tue, 16 Feb 2010 19:19:58 +0000 (19:19 +0000)]
simplify this code. In the new world order there is no
need to scan the entire subtree of the pattern anymore.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@96369
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Tue, 16 Feb 2010 19:15:55 +0000 (19:15 +0000)]
convert the new matcher to check intermediate nodes for a single
use and only call IsProfitableToFold/IsLegalToFold on the load
being folded, like the old dagiselemitter does. This
substantially simplifies the code and improves opportunities for
sharing.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@96368
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Tue, 16 Feb 2010 19:03:34 +0000 (19:03 +0000)]
change dag isel emitter to only call 'IsProfitableToFold' on nodes
with chains. On interior nodes that lead up to them, we just directly
check that there is a single use. This generates slightly more
efficient code.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@96366
91177308-0d34-0410-b5e6-
96231b3b80d8
Bob Wilson [Tue, 16 Feb 2010 17:24:15 +0000 (17:24 +0000)]
Fix pr6111: Avoid using the LR register for the target address of an indirect
branch in ARM v4 code, since it gets clobbered by the return address before
it is used. Instead of adding a new register class containing all the GPRs
except LR, just use the existing tGPR class.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@96360
91177308-0d34-0410-b5e6-
96231b3b80d8
Duncan Sands [Tue, 16 Feb 2010 14:50:09 +0000 (14:50 +0000)]
Introduce isOpaqueTy and use it rather than isa<OpaqueType>. Also, move some
methods to try to have the type predicates be more logically positioned.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@96349
91177308-0d34-0410-b5e6-
96231b3b80d8
Duncan Sands [Tue, 16 Feb 2010 11:11:14 +0000 (11:11 +0000)]
There are two ways of checking for a given type, for example isa<PointerType>(T)
and T->isPointerTy(). Convert most instances of the first form to the second form.
Requested by Chris.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@96344
91177308-0d34-0410-b5e6-
96231b3b80d8
Benjamin Kramer [Tue, 16 Feb 2010 10:25:04 +0000 (10:25 +0000)]
Minor warning fixes (semicolons, newline at EOF).
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@96343
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Tue, 16 Feb 2010 07:26:36 +0000 (07:26 +0000)]
mark all the generated node predicates 'const'.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@96337
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Tue, 16 Feb 2010 07:21:10 +0000 (07:21 +0000)]
generate code for node and pattern predicates. Note that this won't
build if enabled, it will fail with constness issues. I'll resolve
these next.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@96336
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Tue, 16 Feb 2010 06:52:01 +0000 (06:52 +0000)]
refactor some code into a local class.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@96334
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Tue, 16 Feb 2010 06:15:00 +0000 (06:15 +0000)]
remove now dead code and fixme.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@96333
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Tue, 16 Feb 2010 06:14:22 +0000 (06:14 +0000)]
remove dead code. This is never generated for any targets in mainline.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@96332
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Tue, 16 Feb 2010 06:10:58 +0000 (06:10 +0000)]
add support for the new isel matcher to generate
(isprofitable|islegal)tofold checks.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@96331
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Tue, 16 Feb 2010 05:03:17 +0000 (05:03 +0000)]
make pcrel immediate values relative to the start of the field,
not the end of the field, fixing rdar://
7651978
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@96330
91177308-0d34-0410-b5e6-
96231b3b80d8
Erick Tryzelaar [Tue, 16 Feb 2010 03:45:23 +0000 (03:45 +0000)]
Fix a typo in an LLVMOpcode enum. LLVMTrunk -> LLVMTrunc.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@96324
91177308-0d34-0410-b5e6-
96231b3b80d8
Erick Tryzelaar [Tue, 16 Feb 2010 03:45:17 +0000 (03:45 +0000)]
Fix some ocaml documentation
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@96323
91177308-0d34-0410-b5e6-
96231b3b80d8
Sanjiv Gupta [Tue, 16 Feb 2010 03:41:07 +0000 (03:41 +0000)]
The code section for an ISR has a specific address.
Currently, whether a function is ISR or not is encoded in the section attribute for that function.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@96322
91177308-0d34-0410-b5e6-
96231b3b80d8
Dale Johannesen [Tue, 16 Feb 2010 01:57:28 +0000 (01:57 +0000)]
Handle DBG_VALUE mixed with labels when doing PHI
elimination. Before a DBG_VALUE could affect codegen.
The solution here is imperfect and not final.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@96318
91177308-0d34-0410-b5e6-
96231b3b80d8
Rafael Espindola [Tue, 16 Feb 2010 01:50:18 +0000 (01:50 +0000)]
Drop support for the InReg attribute on the ppc backend. This was used by
llvm-gcc but has been replaced with pad argument which don't need any
special backend support.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@96312
91177308-0d34-0410-b5e6-
96231b3b80d8
Dan Gohman [Tue, 16 Feb 2010 01:42:53 +0000 (01:42 +0000)]
Split the main for-each-use loop again, this time for GenerateTruncates,
as it also peeks at which registers are being used by other uses. This
makes LSR less sensitive to use-list order.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@96308
91177308-0d34-0410-b5e6-
96231b3b80d8
Dale Johannesen [Tue, 16 Feb 2010 01:27:47 +0000 (01:27 +0000)]
Reapply 96294; now that I've gotten around to looking
at older buildbot messages, I see the failure predates
this patch.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@96307
91177308-0d34-0410-b5e6-
96231b3b80d8
Bill Wendling [Tue, 16 Feb 2010 00:58:02 +0000 (00:58 +0000)]
Apply patch from llvm.org/bugs/attachment.cgi?id=4136 now that PR5004 is
finished.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@96304
91177308-0d34-0410-b5e6-
96231b3b80d8
Dale Johannesen [Tue, 16 Feb 2010 00:43:58 +0000 (00:43 +0000)]
Something broke. Hard to believe it was this patch
but it's harder to believe it's the other candidate,
so reverting. Temporarily I hope.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@96303
91177308-0d34-0410-b5e6-
96231b3b80d8
Dan Gohman [Tue, 16 Feb 2010 00:20:08 +0000 (00:20 +0000)]
When reusing an existing PHI node in a loop, be even more
strict about the requirements.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@96301
91177308-0d34-0410-b5e6-
96231b3b80d8
Bob Wilson [Mon, 15 Feb 2010 23:43:47 +0000 (23:43 +0000)]
Put repeated empty pattern into the AQI instruction class.
We could almost use a multiclass for the signed/unsigned instructions, but
there are only 6 of them so I guess it's not worth it.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@96297
91177308-0d34-0410-b5e6-
96231b3b80d8
Evan Cheng [Mon, 15 Feb 2010 23:16:53 +0000 (23:16 +0000)]
Fix a memory leak. Patch by Nicolas Geoffray.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@96295
91177308-0d34-0410-b5e6-
96231b3b80d8
Dale Johannesen [Mon, 15 Feb 2010 23:05:03 +0000 (23:05 +0000)]
More handling of DBG_VALUE.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@96294
91177308-0d34-0410-b5e6-
96231b3b80d8
Anton Korobeynikov [Mon, 15 Feb 2010 22:55:13 +0000 (22:55 +0000)]
Add missed entry to cmake build list file
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@96292
91177308-0d34-0410-b5e6-
96231b3b80d8
Anton Korobeynikov [Mon, 15 Feb 2010 22:38:25 +0000 (22:38 +0000)]
Use ttype encoding consistently
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@96290
91177308-0d34-0410-b5e6-
96231b3b80d8
Anton Korobeynikov [Mon, 15 Feb 2010 22:38:10 +0000 (22:38 +0000)]
Fix a silly darwin-only typo introduced during merge.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@96289
91177308-0d34-0410-b5e6-
96231b3b80d8
Anton Korobeynikov [Mon, 15 Feb 2010 22:37:53 +0000 (22:37 +0000)]
Move TLOF implementations to libCodegen to resolve layering violation.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@96288
91177308-0d34-0410-b5e6-
96231b3b80d8
Anton Korobeynikov [Mon, 15 Feb 2010 22:36:41 +0000 (22:36 +0000)]
It turns out that we emitted completely wrong common EH frame since the early beginning! The "z" CIE augmentation mark indicates that there is an extra word containing the size of augmentation section. However, even for frames w/o any augmentation data we emitted size uleb! (this is the case of "unwinding through C code"). Thus frame moves information was emitterd completely wrong.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@96287
91177308-0d34-0410-b5e6-
96231b3b80d8
Anton Korobeynikov [Mon, 15 Feb 2010 22:36:26 +0000 (22:36 +0000)]
Add suffix for stubs, so we won't have name clashes with private symbols.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@96286
91177308-0d34-0410-b5e6-
96231b3b80d8
Anton Korobeynikov [Mon, 15 Feb 2010 22:35:59 +0000 (22:35 +0000)]
Preliminary patch to improve dwarf EH generation - Hooks to return Personality / FDE / LSDA / TType encoding depending on target / options (e.g. code model / relocation model) - MCIzation of Dwarf EH printer to use encoding information - Stub generation for ELF target (needed for indirect references) - Some other small changes here and there
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@96285
91177308-0d34-0410-b5e6-
96231b3b80d8
Nick Lewycky [Mon, 15 Feb 2010 22:09:09 +0000 (22:09 +0000)]
Teach the verifier to check the condition on a branch and ensure that it has
'i1' type.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@96282
91177308-0d34-0410-b5e6-
96231b3b80d8
Jakob Stoklund Olesen [Mon, 15 Feb 2010 22:03:29 +0000 (22:03 +0000)]
Fix PR6300.
A virtual register can be used before it is defined in the same MBB if the MBB
is part of a loop. Teach the implicit-def pass about this case.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@96279
91177308-0d34-0410-b5e6-
96231b3b80d8
Bob Wilson [Mon, 15 Feb 2010 21:56:40 +0000 (21:56 +0000)]
Last week we were generating code with duplicate induction variables in this
test, but the problem seems to have gone away today. Add a check to make sure
it doesn't come back.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@96277
91177308-0d34-0410-b5e6-
96231b3b80d8
Nick Lewycky [Mon, 15 Feb 2010 21:52:04 +0000 (21:52 +0000)]
Fix crash in VerifyType when checking Contexts. Because there may not be a
Module (we were called with verifyFunction and an unowned Function) we can't
rely on Mod->getContext().
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@96275
91177308-0d34-0410-b5e6-
96231b3b80d8
Nick Lewycky [Mon, 15 Feb 2010 21:27:56 +0000 (21:27 +0000)]
Don't try to materialize a function that isn't materializable anyways. This
fixes a crash using FPM on a Function that isn't owned by a Module.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@96273
91177308-0d34-0410-b5e6-
96231b3b80d8
Nick Lewycky [Mon, 15 Feb 2010 21:27:20 +0000 (21:27 +0000)]
A function with no Module owner isn't materializable. This fixes F->dump() for
functions not embedded within modules.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@96272
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Mon, 15 Feb 2010 21:14:50 +0000 (21:14 +0000)]
remove empty file.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@96271
91177308-0d34-0410-b5e6-
96231b3b80d8
Daniel Dunbar [Mon, 15 Feb 2010 21:08:22 +0000 (21:08 +0000)]
Simplify.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@96269
91177308-0d34-0410-b5e6-
96231b3b80d8
Bill Wendling [Mon, 15 Feb 2010 20:53:17 +0000 (20:53 +0000)]
Remove c++ style comments from c header.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@96266
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Mon, 15 Feb 2010 20:53:01 +0000 (20:53 +0000)]
revert r96241. It breaks two regression tests, isn't documented,
and the testcase needs improvement.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@96265
91177308-0d34-0410-b5e6-
96231b3b80d8
Bill Wendling [Mon, 15 Feb 2010 20:50:51 +0000 (20:50 +0000)]
Renumber Instruction enums in llvm-c.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@96264
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Mon, 15 Feb 2010 20:47:49 +0000 (20:47 +0000)]
fix PR6305 by handling BlockAddress in a helper function
called by jump threading.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@96263
91177308-0d34-0410-b5e6-
96231b3b80d8
Evan Cheng [Mon, 15 Feb 2010 19:41:07 +0000 (19:41 +0000)]
Split SelectionDAGISel::IsLegalAndProfitableToFold to
IsLegalToFold and IsProfitableToFold. The generic version of the later simply checks whether the folding candidate has a single use.
This allows the target isel routines more flexibility in deciding whether folding makes sense. The specific case we are interested in is folding constant pool loads with multiple uses.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@96255
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Mon, 15 Feb 2010 18:55:04 +0000 (18:55 +0000)]
comment fix.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@96248
91177308-0d34-0410-b5e6-
96231b3b80d8
David Greene [Mon, 15 Feb 2010 17:02:56 +0000 (17:02 +0000)]
Add support for emitting non-temporal stores for DAGs marked
non-temporal.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@96241
91177308-0d34-0410-b5e6-
96231b3b80d8
David Greene [Mon, 15 Feb 2010 17:00:31 +0000 (17:00 +0000)]
Add non-temporal flags and remove an assumption of default arguments.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@96240
91177308-0d34-0410-b5e6-
96231b3b80d8
David Greene [Mon, 15 Feb 2010 16:57:43 +0000 (16:57 +0000)]
Remove an assumption of default arguments. This is in anticipation of a
change to SelectionDAG build APIs.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@96239
91177308-0d34-0410-b5e6-
96231b3b80d8
David Greene [Mon, 15 Feb 2010 16:57:13 +0000 (16:57 +0000)]
Remove an assumption of default arguments. This is in anticipation of a
change to SelectionDAG build APIs.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@96238
91177308-0d34-0410-b5e6-
96231b3b80d8
David Greene [Mon, 15 Feb 2010 16:57:02 +0000 (16:57 +0000)]
Remove an assumption of default arguments. This is in anticipation of a
change to SelectionDAG build APIs.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@96237
91177308-0d34-0410-b5e6-
96231b3b80d8
David Greene [Mon, 15 Feb 2010 16:56:53 +0000 (16:56 +0000)]
Remove an assumption of default arguments. This is in anticipation of a
change to SelectionDAG build APIs.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@96236
91177308-0d34-0410-b5e6-
96231b3b80d8
David Greene [Mon, 15 Feb 2010 16:56:34 +0000 (16:56 +0000)]
Remove an assumption of default arguments. This is in anticipation of a
change to SelectionDAG build APIs.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@96235
91177308-0d34-0410-b5e6-
96231b3b80d8
David Greene [Mon, 15 Feb 2010 16:56:22 +0000 (16:56 +0000)]
Remove an assumption of default arguments. This is in anticipation of a
change to SelectionDAG build APIs.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@96234
91177308-0d34-0410-b5e6-
96231b3b80d8
David Greene [Mon, 15 Feb 2010 16:56:10 +0000 (16:56 +0000)]
Remove an assumption of default arguments. This is in anticipation of a
change to SelectionDAG build APIs.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@96233
91177308-0d34-0410-b5e6-
96231b3b80d8
David Greene [Mon, 15 Feb 2010 16:55:58 +0000 (16:55 +0000)]
Remove an assumption of default arguments. This is in anticipation of a
change to SelectionDAG build APIs.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@96232
91177308-0d34-0410-b5e6-
96231b3b80d8
David Greene [Mon, 15 Feb 2010 16:55:37 +0000 (16:55 +0000)]
Remove an assumption of default arguments. This is in anticipation of a
change to SelectionDAG build APIs.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@96231
91177308-0d34-0410-b5e6-
96231b3b80d8
David Greene [Mon, 15 Feb 2010 16:55:24 +0000 (16:55 +0000)]
Remove an assumption of default arguments. This is in anticipation of a
change to SelectionDAG build APIs.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@96230
91177308-0d34-0410-b5e6-
96231b3b80d8
David Greene [Mon, 15 Feb 2010 16:55:07 +0000 (16:55 +0000)]
Remove an assumption of default arguments. This is in anticipation of a
change to SelectionDAG build APIs.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@96229
91177308-0d34-0410-b5e6-
96231b3b80d8
David Greene [Mon, 15 Feb 2010 16:53:33 +0000 (16:53 +0000)]
Remove an assumption of default arguments. This is in anticipation of a
change to SelectionDAG build APIs.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@96228
91177308-0d34-0410-b5e6-
96231b3b80d8
David Greene [Mon, 15 Feb 2010 16:49:52 +0000 (16:49 +0000)]
Remove an assumption of default arguments. This is in anticipation of a
change to SelectionDAG build APIs.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@96227
91177308-0d34-0410-b5e6-
96231b3b80d8
David Greene [Mon, 15 Feb 2010 16:48:31 +0000 (16:48 +0000)]
Add non-temporal flags to MachineMemOperand.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@96226
91177308-0d34-0410-b5e6-
96231b3b80d8
Duncan Sands [Mon, 15 Feb 2010 16:12:20 +0000 (16:12 +0000)]
Uniformize the names of type predicates: rather than having isFloatTy and
isInteger, we now have isFloatTy and isIntegerTy. Requested by Chris!
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@96223
91177308-0d34-0410-b5e6-
96231b3b80d8
Oscar Fuentes [Mon, 15 Feb 2010 15:17:05 +0000 (15:17 +0000)]
CMake: Fixed syntax in conditional.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@96221
91177308-0d34-0410-b5e6-
96231b3b80d8
Andrew Lenharth [Mon, 15 Feb 2010 15:00:44 +0000 (15:00 +0000)]
Fix changes from r75027
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@96220
91177308-0d34-0410-b5e6-
96231b3b80d8
Dan Gohman [Mon, 15 Feb 2010 10:28:37 +0000 (10:28 +0000)]
When testing whether a given SCEV depends on a temporary symbolic
name, test whether the SCEV itself is that temporary symbolic name,
in addition to checking whether the symbolic name appears as a
possibly-indirect operand.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@96216
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Mon, 15 Feb 2010 08:04:42 +0000 (08:04 +0000)]
Check in the first big step of rewriting DAGISelEmitter to
produce a table based matcher instead of gobs of C++ Code.
Though it's not done yet, the shrinkage seems promising,
the table for the X86 ISel is 75K and still has a lot of
optimization to come (compare to the ~1.5M of .o generated
the old way, much of which will go away).
The code is currently disabled by default (the #if 0 in
DAGISelEmitter.cpp). When enabled it generates a dead
SelectCode2 function in the DAGISel Header which will
eventually replace SelectCode.
There is still a lot of stuff left to do, which are
documented with a trail of FIXMEs.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@96215
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Mon, 15 Feb 2010 07:11:34 +0000 (07:11 +0000)]
give SDValue an operator->, allowing V->isTargetOpcode() and
many other natural things.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@96214
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Mon, 15 Feb 2010 06:39:31 +0000 (06:39 +0000)]
don't make insanely large node numbers for no reason,
packing somewhat densely is better than not.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@96213
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Mon, 15 Feb 2010 06:38:41 +0000 (06:38 +0000)]
no need to add the instruction count anymore.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@96212
91177308-0d34-0410-b5e6-
96231b3b80d8
Mikhail Glushenkov [Mon, 15 Feb 2010 03:17:06 +0000 (03:17 +0000)]
Revert r96130 ("Forward parameter options as '-option=param'").
This behaviour must be configurable.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@96210
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Mon, 15 Feb 2010 02:18:26 +0000 (02:18 +0000)]
enhance raw_svector_ostream::write_impl to work with unbuffered streams,
which may call write_impl on things that are not the usual buffer.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@96209
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Mon, 15 Feb 2010 02:17:50 +0000 (02:17 +0000)]
make PadToColumn return the stream so you can use:
OS.PadToColumn(42) << "foo";
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@96208
91177308-0d34-0410-b5e6-
96231b3b80d8
Dale Johannesen [Mon, 15 Feb 2010 01:45:47 +0000 (01:45 +0000)]
Ignore DBG_VALUE in a couple more places.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@96207
91177308-0d34-0410-b5e6-
96231b3b80d8
Dan Gohman [Mon, 15 Feb 2010 00:21:43 +0000 (00:21 +0000)]
When restoring a saved insert location, check to see if the saved
insert location has become an "inserted" instruction since the time
it was saved. If so, advance to the first non-"inserted" instruction.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@96203
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Sun, 14 Feb 2010 22:33:49 +0000 (22:33 +0000)]
constize
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@96199
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Sun, 14 Feb 2010 22:22:58 +0000 (22:22 +0000)]
clean up a bunch of code, move some random predicates
on TreePatternNode to be methods on TreePatternNode.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@96197
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Sun, 14 Feb 2010 21:53:19 +0000 (21:53 +0000)]
mark "addr" as having type "iPTR", eliminating some type comparisons
in hte generated dag isel fil.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@96193
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Sun, 14 Feb 2010 21:11:53 +0000 (21:11 +0000)]
remove the DisablePatternForFastISel predicate, which is a check
that predated -fast-isel which attempted to speed up the dag pattern
matchers at -O0. Since fast-isel is around, this is basically
obsolete and removing it shrinks the generated dag isels.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@96188
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Sun, 14 Feb 2010 21:10:33 +0000 (21:10 +0000)]
add an insertion operator.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@96187
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Sun, 14 Feb 2010 21:10:15 +0000 (21:10 +0000)]
tidy up
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@96186
91177308-0d34-0410-b5e6-
96231b3b80d8
Dan Gohman [Sun, 14 Feb 2010 18:51:39 +0000 (18:51 +0000)]
Fix whitespace.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@96179
91177308-0d34-0410-b5e6-
96231b3b80d8
Dan Gohman [Sun, 14 Feb 2010 18:51:20 +0000 (18:51 +0000)]
Fix a comment.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@96178
91177308-0d34-0410-b5e6-
96231b3b80d8
Dan Gohman [Sun, 14 Feb 2010 18:50:49 +0000 (18:50 +0000)]
When complicated expressions are broken down into subexpressions
with multiplication by constants distributed through, occasionally
those subexpressions can include both x and -x. For now, if this
condition is discovered within LSR, just prune such cases away,
as they won't be profitable. This fixes a "zero allocated in a
base register" assertion failure.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@96177
91177308-0d34-0410-b5e6-
96231b3b80d8