Jakob Stoklund Olesen
4029596f93
Use the fast register allocator by default for -O0 builds.
...
This affects both llvm-gcc and clang.
llvm-svn: 105372
2010-06-03 00:39:06 +00:00
Jakob Stoklund Olesen
818e4df2b4
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.
llvm-svn: 105369
2010-06-03 00:07:47 +00:00
Jakob Stoklund Olesen
42c642cd24
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.
llvm-svn: 105361
2010-06-02 23:22:11 +00:00
Devang Patel
df84e8baf7
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.
...
llvm-svn: 105360
2010-06-02 23:05:04 +00:00
Bill Wendling
7ee730eb40
Compulsive reformating. No functionalitical changes.
...
llvm-svn: 105359
2010-06-02 23:04:26 +00:00
Jakob Stoklund Olesen
a8ad97743d
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.
llvm-svn: 105358
2010-06-02 22:47:25 +00:00
Benjamin Kramer
9cb0274182
Update Readme and Makefiles for the new gtest.
...
llvm-svn: 105355
2010-06-02 22:02:57 +00:00
Benjamin Kramer
bfb492d6c8
Merge gtest-1.5.0.
...
llvm-svn: 105354
2010-06-02 22:02:30 +00:00
Benjamin Kramer
78b6a290cb
Merge gtest-1.4.0.
...
llvm-svn: 105353
2010-06-02 22:02:11 +00:00
Benjamin Kramer
f2f402059f
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.
llvm-svn: 105352
2010-06-02 22:01:25 +00:00
Jim Grosbach
84511e1526
Clean up 80 column violations. No functional change.
...
llvm-svn: 105350
2010-06-02 21:53:11 +00:00
Nate Begeman
7db953e396
arm_neon.h emitter now mostly complete for the purposes of initial testing.
...
llvm-svn: 105349
2010-06-02 21:53:00 +00:00
Rafael Espindola
f2dffcef82
Remove the TargetRegisterClass member from CalleeSavedInfo
...
llvm-svn: 105344
2010-06-02 20:02:30 +00:00
Eli Friedman
6e3d5af945
Fix comment so it doesn't include comments which are irrelevant to the x86
...
backend. Add a FIXME noting what can be fixed here.
llvm-svn: 105342
2010-06-02 19:35:46 +00:00
Dan Gohman
a690618c58
Use comments to document non-obvious code rather than
...
mailing list archives.
llvm-svn: 105341
2010-06-02 19:13:40 +00:00
Devang Patel
c2254f6b98
Skip identical instruction while calculating DBG_VALUE range.
...
llvm-svn: 105340
2010-06-02 19:05:13 +00:00
Bob Wilson
2d35a9e810
Rename canCombinedSubRegIndex method to something more grammatically correct
...
and tidy up the comment describing it.
llvm-svn: 105339
2010-06-02 18:54:47 +00:00
Rafael Espindola
94801a47f8
Replace ARM's getCalleeSavedRegClasses with a simpler solution
...
llvm-svn: 105335
2010-06-02 17:54:50 +00:00
Jim Grosbach
fd00a43f89
remove trailing whitespace
...
llvm-svn: 105333
2010-06-02 17:45:54 +00:00
Devang Patel
21ccf05b4c
Use local small vector.
...
llvm-svn: 105332
2010-06-02 16:42:51 +00:00
Rafael Espindola
7881a64a50
Remove unused function.
...
llvm-svn: 105325
2010-06-02 15:44:20 +00:00
Jim Grosbach
848548300d
Not all entries in the range will have an SUnit. Check for that when looking
...
for debug information.
llvm-svn: 105324
2010-06-02 15:29:36 +00:00
Rafael Espindola
598342accf
Update the documentation, getCalleeSavedRegClasses is not required anymore.
...
llvm-svn: 105323
2010-06-02 14:03:11 +00:00
Rafael Espindola
ef2b6ce00a
cleanup
...
llvm-svn: 105322
2010-06-02 13:53:17 +00:00
Rafael Espindola
c08ecba597
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.
llvm-svn: 105321
2010-06-02 12:39:06 +00:00
Duncan Sands
9242162bb1
Pacify recent gcc: remove a pointless const qualifier.
...
llvm-svn: 105318
2010-06-02 08:37:30 +00:00
Nate Begeman
68d0518b92
Checkpoint; handle 'int' and 'void' correctly
...
llvm-svn: 105316
2010-06-02 07:14:28 +00:00
Nate Begeman
d86d60f91d
Emit full function prototypes. Definitions & typedefs to come.
...
llvm-svn: 105315
2010-06-02 06:17:19 +00:00
Evan Cheng
a2da22734f
Enable machine cse of instructions which define physical registers.
...
llvm-svn: 105308
2010-06-02 01:08:27 +00:00
Nate Begeman
469bb2be2c
Checkpoint arm_neon.h generation with tablegen
...
llvm-svn: 105307
2010-06-02 00:34:55 +00:00
Eli Friedman
526e6d045f
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.
llvm-svn: 105305
2010-06-02 00:27:18 +00:00
Bob Wilson
f4a34b97b8
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.
llvm-svn: 105304
2010-06-02 00:16:08 +00:00
Eli Friedman
6382c9c681
Remove outdated README entries.
...
llvm-svn: 105303
2010-06-02 00:10:36 +00:00
Jim Grosbach
12ac8f0352
Update debug information when breaking anti-dependencies. rdar://7759363
...
llvm-svn: 105300
2010-06-01 23:48:44 +00:00
Alexis Hunt
6e1690bdd8
Fix comment
...
llvm-svn: 105297
2010-06-01 23:29:39 +00:00
Devang Patel
89f2db6b67
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.
llvm-svn: 105295
2010-06-01 23:01:43 +00:00
Jakob Stoklund Olesen
7b0ac865a4
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.
llvm-svn: 105294
2010-06-01 22:39:25 +00:00
Jim Grosbach
5ba76b94f8
Remove unused code
...
llvm-svn: 105293
2010-06-01 21:56:30 +00:00
Devang Patel
d43e0ca916
Ignore line number of debug value in undefined register.
...
llvm-svn: 105292
2010-06-01 21:43:09 +00:00
Jim Grosbach
0e20dc5cd6
fix think-o
...
llvm-svn: 105291
2010-06-01 21:35:50 +00:00
Dan Gohman
47a0724425
Fix the allocation of shadow space for the Win64 calling convention
...
in X86FastISel. Patch by Jan Sjodin.
llvm-svn: 105290
2010-06-01 21:09:47 +00:00
Jim Grosbach
b69c68742a
Simplify things a bit more. Fix prototype to use SmallVectorImpl and
...
change a few SmallVectors to vanilla C arrays.
llvm-svn: 105289
2010-06-01 21:06:46 +00:00
Dan Gohman
49a372cebc
Fix the noalias checking so that it doesn't worry about
...
an argument aliasing itself. Thanks Duncan!
llvm-svn: 105288
2010-06-01 20:51:40 +00:00
Devang Patel
b0c76394a3
Keep track of incoming debug value of unused argument.
...
Radar 7927666.
llvm-svn: 105285
2010-06-01 19:59:01 +00:00
Dan Gohman
b782caa393
Fill in missing support for ISD::FEXP, ISD::FPOWI, and friends.
...
llvm-svn: 105283
2010-06-01 18:35:14 +00:00
Jim Grosbach
b24d5c6ce2
Add a FIXME
...
llvm-svn: 105282
2010-06-01 18:06:35 +00:00
Jim Grosbach
a37af16221
mirror of r105280 changes for LowerInvoke, which uses the same basic logic here
...
llvm-svn: 105281
2010-06-01 18:04:56 +00:00
Jim Grosbach
74d8345512
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
llvm-svn: 105280
2010-06-01 18:04:09 +00:00
Jim Grosbach
7352167560
Use SmallVector instead of std::vector.
...
llvm-svn: 105279
2010-06-01 17:56:41 +00:00
Dan Gohman
bf821b9e9d
Delete unused variables (that weren't even getting expanded).
...
llvm-svn: 105278
2010-06-01 17:26:14 +00:00