Eric Christopher [Thu, 3 Jun 2010 04:07:48 +0000 (04:07 +0000)]
Add first pass at darwin tls compiler support.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@105381
91177308-0d34-0410-b5e6-
96231b3b80d8
Nate Begeman [Thu, 3 Jun 2010 04:04:09 +0000 (04:04 +0000)]
arm_neon.h now makes it through clang and generates appropriate code for those functions which can use
generic vector operators rather than __builtin_neon_*
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@105380
91177308-0d34-0410-b5e6-
96231b3b80d8
Eric Christopher [Thu, 3 Jun 2010 04:02:59 +0000 (04:02 +0000)]
One underscore, not two.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@105379
91177308-0d34-0410-b5e6-
96231b3b80d8
Eli Friedman [Thu, 3 Jun 2010 03:49:50 +0000 (03:49 +0000)]
Implement expansion in type legalization for add/sub with overflow. The
expansion is the same as that used by LegalizeDAG.
The resulting code sucks in terms of performance/codesize on x86-32 for a
64-bit operation; I haven't looked into whether different expansions might be
better in general.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@105378
91177308-0d34-0410-b5e6-
96231b3b80d8
Eli Friedman [Thu, 3 Jun 2010 01:47:31 +0000 (01:47 +0000)]
Remove some already-fixed README entries.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@105377
91177308-0d34-0410-b5e6-
96231b3b80d8
Eli Friedman [Thu, 3 Jun 2010 01:16:51 +0000 (01:16 +0000)]
Remove README entry which no longer compiles to something sane.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@105376
91177308-0d34-0410-b5e6-
96231b3b80d8
Eli Friedman [Thu, 3 Jun 2010 01:01:48 +0000 (01:01 +0000)]
Remove a fixed item, update a couple partially-fixed items.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@105375
91177308-0d34-0410-b5e6-
96231b3b80d8
Jakob Stoklund Olesen [Thu, 3 Jun 2010 00:39:06 +0000 (00:39 +0000)]
Use the fast register allocator by default for -O0 builds.
This affects both llvm-gcc and clang.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@105372
91177308-0d34-0410-b5e6-
96231b3b80d8
Jakob Stoklund Olesen [Thu, 3 Jun 2010 00:07:47 +0000 (00:07 +0000)]
Use readsWritesVirtualRegister instead of counting uses and defs when inserting
spills and reloads.
This means that a partial define of a register causes a reload so the other
parts of the register are preserved.
The reload can be prevented by adding an <imp-def> operand for the full
register. This is already done by the coalescer and live interval analysis where
relevant.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@105369
91177308-0d34-0410-b5e6-
96231b3b80d8
Jakob Stoklund Olesen [Wed, 2 Jun 2010 23:22:11 +0000 (23:22 +0000)]
Add full register <imp-def> operands when the coalescer is creating partial
register updates.
These operands tell the spiller that the other parts of the partially defined
register are don't-care, and a reload is not necessary.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@105361
91177308-0d34-0410-b5e6-
96231b3b80d8
Devang Patel [Wed, 2 Jun 2010 23:05:04 +0000 (23:05 +0000)]
Speedup bitcode writer. Do not walk all values for all functions to emit function local metadata. In one testcase, probably worst case scenario, the 70x speed up is seen.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@105360
91177308-0d34-0410-b5e6-
96231b3b80d8
Bill Wendling [Wed, 2 Jun 2010 23:04:26 +0000 (23:04 +0000)]
Compulsive reformating. No functionalitical changes.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@105359
91177308-0d34-0410-b5e6-
96231b3b80d8
Jakob Stoklund Olesen [Wed, 2 Jun 2010 22:47:25 +0000 (22:47 +0000)]
Slightly change the meaning of the reMaterialize target hook when the original
instruction defines subregisters.
Any existing subreg indices on the original instruction are preserved or
composed with the new subreg index.
Also substitute multiple operands mentioning the original register by using the
new MachineInstr::substituteRegister() function. This is necessary because there
will soon be <imp-def> operands added to non read-modify-write partial
definitions. This instruction:
%reg1234:foo = FLAP %reg1234<imp-def>
will reMaterialize(%reg3333, bar) like this:
%reg3333:bar-foo = FLAP %reg333:bar<imp-def>
Finally, replace the TargetRegisterInfo pointer argument with a reference to
indicate that it cannot be NULL.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@105358
91177308-0d34-0410-b5e6-
96231b3b80d8
Benjamin Kramer [Wed, 2 Jun 2010 22:02:57 +0000 (22:02 +0000)]
Update Readme and Makefiles for the new gtest.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@105355
91177308-0d34-0410-b5e6-
96231b3b80d8
Benjamin Kramer [Wed, 2 Jun 2010 22:02:30 +0000 (22:02 +0000)]
Merge gtest-1.5.0.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@105354
91177308-0d34-0410-b5e6-
96231b3b80d8
Benjamin Kramer [Wed, 2 Jun 2010 22:02:11 +0000 (22:02 +0000)]
Merge gtest-1.4.0.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@105353
91177308-0d34-0410-b5e6-
96231b3b80d8
Benjamin Kramer [Wed, 2 Jun 2010 22:01:25 +0000 (22:01 +0000)]
Merge gtest-1.3.0.
OSX users: make sure that CrashReporter is disabled when running unit tests.
Death tests are enabled now so you'll get a ton of message boxes.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@105352
91177308-0d34-0410-b5e6-
96231b3b80d8
Jim Grosbach [Wed, 2 Jun 2010 21:53:11 +0000 (21:53 +0000)]
Clean up 80 column violations. No functional change.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@105350
91177308-0d34-0410-b5e6-
96231b3b80d8
Nate Begeman [Wed, 2 Jun 2010 21:53:00 +0000 (21:53 +0000)]
arm_neon.h emitter now mostly complete for the purposes of initial testing.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@105349
91177308-0d34-0410-b5e6-
96231b3b80d8
Rafael Espindola [Wed, 2 Jun 2010 20:02:30 +0000 (20:02 +0000)]
Remove the TargetRegisterClass member from CalleeSavedInfo
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@105344
91177308-0d34-0410-b5e6-
96231b3b80d8
Eli Friedman [Wed, 2 Jun 2010 19:35:46 +0000 (19:35 +0000)]
Fix comment so it doesn't include comments which are irrelevant to the x86
backend. Add a FIXME noting what can be fixed here.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@105342
91177308-0d34-0410-b5e6-
96231b3b80d8
Dan Gohman [Wed, 2 Jun 2010 19:13:40 +0000 (19:13 +0000)]
Use comments to document non-obvious code rather than
mailing list archives.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@105341
91177308-0d34-0410-b5e6-
96231b3b80d8
Devang Patel [Wed, 2 Jun 2010 19:05:13 +0000 (19:05 +0000)]
Skip identical instruction while calculating DBG_VALUE range.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@105340
91177308-0d34-0410-b5e6-
96231b3b80d8
Bob Wilson [Wed, 2 Jun 2010 18:54:47 +0000 (18:54 +0000)]
Rename canCombinedSubRegIndex method to something more grammatically correct
and tidy up the comment describing it.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@105339
91177308-0d34-0410-b5e6-
96231b3b80d8
Rafael Espindola [Wed, 2 Jun 2010 17:54:50 +0000 (17:54 +0000)]
Replace ARM's getCalleeSavedRegClasses with a simpler solution
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@105335
91177308-0d34-0410-b5e6-
96231b3b80d8
Jim Grosbach [Wed, 2 Jun 2010 17:45:54 +0000 (17:45 +0000)]
remove trailing whitespace
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@105333
91177308-0d34-0410-b5e6-
96231b3b80d8
Devang Patel [Wed, 2 Jun 2010 16:42:51 +0000 (16:42 +0000)]
Use local small vector.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@105332
91177308-0d34-0410-b5e6-
96231b3b80d8
Rafael Espindola [Wed, 2 Jun 2010 15:44:20 +0000 (15:44 +0000)]
Remove unused function.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@105325
91177308-0d34-0410-b5e6-
96231b3b80d8
Jim Grosbach [Wed, 2 Jun 2010 15:29:36 +0000 (15:29 +0000)]
Not all entries in the range will have an SUnit. Check for that when looking
for debug information.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@105324
91177308-0d34-0410-b5e6-
96231b3b80d8
Rafael Espindola [Wed, 2 Jun 2010 14:03:11 +0000 (14:03 +0000)]
Update the documentation, getCalleeSavedRegClasses is not required anymore.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@105323
91177308-0d34-0410-b5e6-
96231b3b80d8
Rafael Espindola [Wed, 2 Jun 2010 13:53:17 +0000 (13:53 +0000)]
cleanup
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@105322
91177308-0d34-0410-b5e6-
96231b3b80d8
Rafael Espindola [Wed, 2 Jun 2010 12:39:06 +0000 (12:39 +0000)]
Remove uses of getCalleeSavedRegClasses from outside the
backends and removes the virtual declaration. With that out of the way
I should be able to cleanup one backend at a time.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@105321
91177308-0d34-0410-b5e6-
96231b3b80d8
Duncan Sands [Wed, 2 Jun 2010 08:37:30 +0000 (08:37 +0000)]
Pacify recent gcc: remove a pointless const qualifier.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@105318
91177308-0d34-0410-b5e6-
96231b3b80d8
Nate Begeman [Wed, 2 Jun 2010 07:14:28 +0000 (07:14 +0000)]
Checkpoint; handle 'int' and 'void' correctly
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@105316
91177308-0d34-0410-b5e6-
96231b3b80d8
Nate Begeman [Wed, 2 Jun 2010 06:17:19 +0000 (06:17 +0000)]
Emit full function prototypes. Definitions & typedefs to come.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@105315
91177308-0d34-0410-b5e6-
96231b3b80d8
Evan Cheng [Wed, 2 Jun 2010 01:08:27 +0000 (01:08 +0000)]
Enable machine cse of instructions which define physical registers.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@105308
91177308-0d34-0410-b5e6-
96231b3b80d8
Nate Begeman [Wed, 2 Jun 2010 00:34:55 +0000 (00:34 +0000)]
Checkpoint arm_neon.h generation with tablegen
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@105307
91177308-0d34-0410-b5e6-
96231b3b80d8
Eli Friedman [Wed, 2 Jun 2010 00:27:18 +0000 (00:27 +0000)]
Don't try to custom-lower 64-bit add-with-overflow and friends on x86-32; the
x86 backend currently doesn't know how to handle them.
This doesn't really fix anything because LegalizeTypes doesn't know how to
handle them either. We do get a better error message, though.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@105305
91177308-0d34-0410-b5e6-
96231b3b80d8
Bob Wilson [Wed, 2 Jun 2010 00:16:08 +0000 (00:16 +0000)]
Fix an obvious mistake: don't change the operands until all of them have been
checked and it is safe to proceed with the changes.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@105304
91177308-0d34-0410-b5e6-
96231b3b80d8
Eli Friedman [Wed, 2 Jun 2010 00:10:36 +0000 (00:10 +0000)]
Remove outdated README entries.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@105303
91177308-0d34-0410-b5e6-
96231b3b80d8
Jim Grosbach [Tue, 1 Jun 2010 23:48:44 +0000 (23:48 +0000)]
Update debug information when breaking anti-dependencies. rdar://
7759363
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@105300
91177308-0d34-0410-b5e6-
96231b3b80d8
Sean Hunt [Tue, 1 Jun 2010 23:29:39 +0000 (23:29 +0000)]
Fix comment
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@105297
91177308-0d34-0410-b5e6-
96231b3b80d8
Devang Patel [Tue, 1 Jun 2010 23:01:43 +0000 (23:01 +0000)]
DwarfWrite is now smart enough to drop debug value pointing to undefined register. Update this test to avoid this.
iSel not properly lowring argument into a well formed DBG_VALUE in some cases is a separate issue and not related to the test in this testcase.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@105295
91177308-0d34-0410-b5e6-
96231b3b80d8
Jakob Stoklund Olesen [Tue, 1 Jun 2010 22:39:25 +0000 (22:39 +0000)]
Properly compose subregister indices when coalescing.
The comment about ordering of subreg indices is no longer true.
This exposed a bug in the new substVirtReg method that is also fixed.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@105294
91177308-0d34-0410-b5e6-
96231b3b80d8
Jim Grosbach [Tue, 1 Jun 2010 21:56:30 +0000 (21:56 +0000)]
Remove unused code
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@105293
91177308-0d34-0410-b5e6-
96231b3b80d8
Devang Patel [Tue, 1 Jun 2010 21:43:09 +0000 (21:43 +0000)]
Ignore line number of debug value in undefined register.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@105292
91177308-0d34-0410-b5e6-
96231b3b80d8
Jim Grosbach [Tue, 1 Jun 2010 21:35:50 +0000 (21:35 +0000)]
fix think-o
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@105291
91177308-0d34-0410-b5e6-
96231b3b80d8
Dan Gohman [Tue, 1 Jun 2010 21:09:47 +0000 (21:09 +0000)]
Fix the allocation of shadow space for the Win64 calling convention
in X86FastISel. Patch by Jan Sjodin.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@105290
91177308-0d34-0410-b5e6-
96231b3b80d8
Jim Grosbach [Tue, 1 Jun 2010 21:06:46 +0000 (21:06 +0000)]
Simplify things a bit more. Fix prototype to use SmallVectorImpl and
change a few SmallVectors to vanilla C arrays.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@105289
91177308-0d34-0410-b5e6-
96231b3b80d8
Dan Gohman [Tue, 1 Jun 2010 20:51:40 +0000 (20:51 +0000)]
Fix the noalias checking so that it doesn't worry about
an argument aliasing itself. Thanks Duncan!
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@105288
91177308-0d34-0410-b5e6-
96231b3b80d8
Devang Patel [Tue, 1 Jun 2010 19:59:01 +0000 (19:59 +0000)]
Keep track of incoming debug value of unused argument.
Radar
7927666.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@105285
91177308-0d34-0410-b5e6-
96231b3b80d8
Dan Gohman [Tue, 1 Jun 2010 18:35:14 +0000 (18:35 +0000)]
Fill in missing support for ISD::FEXP, ISD::FPOWI, and friends.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@105283
91177308-0d34-0410-b5e6-
96231b3b80d8
Jim Grosbach [Tue, 1 Jun 2010 18:06:35 +0000 (18:06 +0000)]
Add a FIXME
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@105282
91177308-0d34-0410-b5e6-
96231b3b80d8
Jim Grosbach [Tue, 1 Jun 2010 18:04:56 +0000 (18:04 +0000)]
mirror of r105280 changes for LowerInvoke, which uses the same basic logic here
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@105281
91177308-0d34-0410-b5e6-
96231b3b80d8
Jim Grosbach [Tue, 1 Jun 2010 18:04:09 +0000 (18:04 +0000)]
When processing function arguments when splitting live ranges across invokes,
handle structs passed by value via an extract/insert pair, as a bitcast
won't work on a struct. rdar://
7742824
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@105280
91177308-0d34-0410-b5e6-
96231b3b80d8
Jim Grosbach [Tue, 1 Jun 2010 17:56:41 +0000 (17:56 +0000)]
Use SmallVector instead of std::vector.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@105279
91177308-0d34-0410-b5e6-
96231b3b80d8
Dan Gohman [Tue, 1 Jun 2010 17:26:14 +0000 (17:26 +0000)]
Delete unused variables (that weren't even getting expanded).
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@105278
91177308-0d34-0410-b5e6-
96231b3b80d8
Dan Gohman [Tue, 1 Jun 2010 17:08:56 +0000 (17:08 +0000)]
Freebsd's sed doesn't support \< in regexps, and GNU sed doesn't
support [[:<:]]. Use beginning-of-line and end-of-line anchors
instead.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@105277
91177308-0d34-0410-b5e6-
96231b3b80d8
Bruno Cardoso Lopes [Tue, 1 Jun 2010 17:02:50 +0000 (17:02 +0000)]
Refactor some SSE 2 unpack instructions
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@105276
91177308-0d34-0410-b5e6-
96231b3b80d8
Dan Gohman [Tue, 1 Jun 2010 16:31:34 +0000 (16:31 +0000)]
Don't call flush() at a library level which isn't checking for errors
and doesn't know where the output is going.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@105274
91177308-0d34-0410-b5e6-
96231b3b80d8
Dan Gohman [Tue, 1 Jun 2010 16:22:27 +0000 (16:22 +0000)]
Fix a spello affecting platforms where the configure check fails.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@105273
91177308-0d34-0410-b5e6-
96231b3b80d8
Dan Gohman [Tue, 1 Jun 2010 16:10:08 +0000 (16:10 +0000)]
Fix a typo in a comment.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@105272
91177308-0d34-0410-b5e6-
96231b3b80d8
Dan Gohman [Tue, 1 Jun 2010 14:56:56 +0000 (14:56 +0000)]
-retain-symbols-file is not what it seems. Update the makefiles
and configury to use --version-script.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@105271
91177308-0d34-0410-b5e6-
96231b3b80d8
Dan Gohman [Tue, 1 Jun 2010 14:09:29 +0000 (14:09 +0000)]
Fix extra fread after EOF, non-wires-crossed version.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@105270
91177308-0d34-0410-b5e6-
96231b3b80d8
Kalle Raiskila [Tue, 1 Jun 2010 13:34:47 +0000 (13:34 +0000)]
Fix handling of 'load' nodes.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@105269
91177308-0d34-0410-b5e6-
96231b3b80d8
Bill Wendling [Mon, 31 May 2010 21:47:24 +0000 (21:47 +0000)]
Debreak test for non-Darwin.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@105257
91177308-0d34-0410-b5e6-
96231b3b80d8
Duncan Sands [Mon, 31 May 2010 21:00:26 +0000 (21:00 +0000)]
Fix PR7272: when inlining through a callsite with byval arguments,
the newly created allocas may be used by inlined calls, so these
need to have their tail call flags cleared. Fixes PR7272.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@105255
91177308-0d34-0410-b5e6-
96231b3b80d8
Eric Christopher [Mon, 31 May 2010 20:39:10 +0000 (20:39 +0000)]
Add a test for the llvm-gcc commit in r90200.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@105253
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Mon, 31 May 2010 17:30:14 +0000 (17:30 +0000)]
fix PR6623: when optimizing for size, don't inline memcpy/memsets
that are too large. This causes the freebsd bootloader to be too
large apparently.
It's unclear if this should be an -Os or -Oz thing. Thoughts welcome.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@105228
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Mon, 31 May 2010 17:27:17 +0000 (17:27 +0000)]
upgrade and filecheckize this test.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@105227
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Mon, 31 May 2010 17:12:23 +0000 (17:12 +0000)]
the 'limit' argument to FindOptimalMemOpLowering is unsigned, not uint64_t.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@105226
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Mon, 31 May 2010 17:10:45 +0000 (17:10 +0000)]
revert r105223 which broke all my testing.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@105225
91177308-0d34-0410-b5e6-
96231b3b80d8
Dan Gohman [Mon, 31 May 2010 16:13:45 +0000 (16:13 +0000)]
Fix count so that it doesn't make an extra fread call after
EOF is detected.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@105223
91177308-0d34-0410-b5e6-
96231b3b80d8
Benjamin Kramer [Mon, 31 May 2010 12:50:41 +0000 (12:50 +0000)]
Avoid swap when a copy suffices.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@105220
91177308-0d34-0410-b5e6-
96231b3b80d8
Nick Lewycky [Mon, 31 May 2010 06:16:35 +0000 (06:16 +0000)]
The memcpy intrinsic only takes i8* for %src and %dst, so cast them to that
first. Fixes PR7265.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@105206
91177308-0d34-0410-b5e6-
96231b3b80d8
Oscar Fuentes [Sun, 30 May 2010 13:14:21 +0000 (13:14 +0000)]
Use `llvm::next' instead of `next' to make VC++ 2010 happy.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@105168
91177308-0d34-0410-b5e6-
96231b3b80d8
Sean Hunt [Sun, 30 May 2010 07:21:42 +0000 (07:21 +0000)]
Allow for creation of clang DeclNodes tables.
The StmtNodes generator has been generalized to allow for the
creation of DeclNodes tables as well, and another emitter was
added for DeclContexts.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@105164
91177308-0d34-0410-b5e6-
96231b3b80d8
Anton Korobeynikov [Sat, 29 May 2010 19:25:39 +0000 (19:25 +0000)]
Some A9 load/store cleanups
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@105109
91177308-0d34-0410-b5e6-
96231b3b80d8
Anton Korobeynikov [Sat, 29 May 2010 19:25:34 +0000 (19:25 +0000)]
Some rough approximations for load/stores on A9
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@105108
91177308-0d34-0410-b5e6-
96231b3b80d8
Anton Korobeynikov [Sat, 29 May 2010 19:25:29 +0000 (19:25 +0000)]
NEON/VFP stuff can be issued only via Pipe1 on A9
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@105107
91177308-0d34-0410-b5e6-
96231b3b80d8
Anton Korobeynikov [Sat, 29 May 2010 19:25:17 +0000 (19:25 +0000)]
Add some integer instruction itineraries for A9
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@105106
91177308-0d34-0410-b5e6-
96231b3b80d8
Dan Gohman [Sat, 29 May 2010 17:53:24 +0000 (17:53 +0000)]
Reorder some code in SelectionDAGBuilder.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@105105
91177308-0d34-0410-b5e6-
96231b3b80d8
Dan Gohman [Sat, 29 May 2010 17:03:36 +0000 (17:03 +0000)]
SelectionDAG shouldn't have a FunctionLoweringInfo member. RegsForValue
shouldn't have a TargetLoweringInfo member. And FunctionLoweringInfo::set
doesn't needs its EnableFastISel argument.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@105101
91177308-0d34-0410-b5e6-
96231b3b80d8
Benjamin Kramer [Sat, 29 May 2010 14:03:51 +0000 (14:03 +0000)]
Remove unused function.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@105100
91177308-0d34-0410-b5e6-
96231b3b80d8
Nick Lewycky [Sat, 29 May 2010 06:44:15 +0000 (06:44 +0000)]
Document aggregate operation constant expressions.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@105098
91177308-0d34-0410-b5e6-
96231b3b80d8
Nick Lewycky [Sat, 29 May 2010 06:11:16 +0000 (06:11 +0000)]
Fix typo.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@105096
91177308-0d34-0410-b5e6-
96231b3b80d8
Evan Cheng [Sat, 29 May 2010 02:23:39 +0000 (02:23 +0000)]
Remove schedule-livein-copies. It's not being used.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@105095
91177308-0d34-0410-b5e6-
96231b3b80d8
Evan Cheng [Sat, 29 May 2010 01:35:22 +0000 (01:35 +0000)]
Fix PR7193: if sibling call address can take a register, make sure there are enough registers available by counting inreg arguments.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@105092
91177308-0d34-0410-b5e6-
96231b3b80d8
Jakob Stoklund Olesen [Sat, 29 May 2010 00:14:14 +0000 (00:14 +0000)]
Handle composed subreg indices when processing REQ_SEQUENCE instructions.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@105066
91177308-0d34-0410-b5e6-
96231b3b80d8
Evan Cheng [Sat, 29 May 2010 00:06:36 +0000 (00:06 +0000)]
Doh. Machine LICM is re-initializing the CSE map over and over. Patch by Anna Zaks. rdar://
8037934.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@105065
91177308-0d34-0410-b5e6-
96231b3b80d8
Jakob Stoklund Olesen [Fri, 28 May 2010 23:48:31 +0000 (23:48 +0000)]
Emit TargetRegisterInfo::composeSubRegIndices().
Also verify that all subregister indices compose unambiguously.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@105064
91177308-0d34-0410-b5e6-
96231b3b80d8
Jakob Stoklund Olesen [Fri, 28 May 2010 23:48:29 +0000 (23:48 +0000)]
Merge the SystemZ subreg_even32 SubRegIndex into subreg_32bit. The SubRegIndices
were overspecified when inheriting sub-subregisters, for instance:
R0Q:subreg_even32 = R0Q:subreg_32bit = R0Q:subreg_even:subreg_32bit.
This meant that composeSubRegIndices(subreg_even, subreg_32bit) was ambiguous.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@105063
91177308-0d34-0410-b5e6-
96231b3b80d8
Evan Cheng [Fri, 28 May 2010 23:26:21 +0000 (23:26 +0000)]
Fix some latency computation bugs: if the use is not a machine opcode do not just return zero.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@105061
91177308-0d34-0410-b5e6-
96231b3b80d8
Evan Cheng [Fri, 28 May 2010 23:25:23 +0000 (23:25 +0000)]
Schedule high latency instructions for latency reduction even if they are not vfp / NEON instructions.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@105060
91177308-0d34-0410-b5e6-
96231b3b80d8
Dale Johannesen [Fri, 28 May 2010 23:24:28 +0000 (23:24 +0000)]
Fix comment typos.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@105059
91177308-0d34-0410-b5e6-
96231b3b80d8
Bruno Cardoso Lopes [Fri, 28 May 2010 22:47:03 +0000 (22:47 +0000)]
More SSE 1 & 2 merge, this time with logical instructions
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@105014
91177308-0d34-0410-b5e6-
96231b3b80d8
Dan Gohman [Fri, 28 May 2010 22:31:51 +0000 (22:31 +0000)]
Fix AliasDebugger to be aware of operand values too.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@105012
91177308-0d34-0410-b5e6-
96231b3b80d8
Dan Gohman [Fri, 28 May 2010 21:43:57 +0000 (21:43 +0000)]
Add lint checks for function attributes.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@105009
91177308-0d34-0410-b5e6-
96231b3b80d8
Dan Gohman [Fri, 28 May 2010 21:41:37 +0000 (21:41 +0000)]
Split the logic behind CastInst::isNoopCast into a separate static function,
as is done with most other cast opcode predicates.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@105008
91177308-0d34-0410-b5e6-
96231b3b80d8
Dan Gohman [Fri, 28 May 2010 21:22:45 +0000 (21:22 +0000)]
Fix a comment; vectors are not a special case here.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@105006
91177308-0d34-0410-b5e6-
96231b3b80d8