Evan Cheng
7aa64222c5
When expanding atomic load arith instructions, do not lose target flags. rdar://12453106
...
llvm-svn: 165568
2012-10-09 23:48:33 +00:00
Andrew Trick
6ef4c5cf64
misched: Add computeInstrLatency to TargetSchedModel.
...
llvm-svn: 165566
2012-10-09 23:44:32 +00:00
Andrew Trick
31edb399c2
misched: Doxument the TargetSchedule API.
...
llvm-svn: 165565
2012-10-09 23:44:29 +00:00
Andrew Trick
0a8af76cb4
misched: Allow flags to disable hasInstrSchedModel/hasInstrItineraries for external users of TargetSchedule.
...
llvm-svn: 165564
2012-10-09 23:44:26 +00:00
Andrew Trick
54d088900c
misched: Remove LoopDependencies heuristic.
...
This wasn't contributing anything significant to postRA heuristics except compile time (by my measurements) and will be replaced by a more general heuristic for cross-region dependencies within the scheduler itself.
llvm-svn: 165563
2012-10-09 23:44:23 +00:00
Bill Wendling
df45e1b495
Use the attribute builder to add attributes to call/invoke instruction. No functionality change intended.
...
llvm-svn: 165562
2012-10-09 23:40:31 +00:00
Jack Carter
f403d95eb4
Initial assembler implementation of Mips load address macro
...
This patch provides initial implementation of load address
macro instruction for Mips. We have implemented two kinds
of expansions with their variations depending on the size
of immediate operand:
1) load address with immediate value directly:
* la d,j => addiu d,$zero,j (for -32768 <= j <= 65535)
* la d,j => lui d,hi16(j)
ori d,d,lo16(j) (for any other 32 bit value of j)
2) load load address with register offset value
* la d,j(s) => addiu d,s,j (for -32768 <= j <= 65535)
* la d,j(s) => lui d,hi16(j) (for any other 32 bit value of j)
ori d,d,lo16(j)
addu d,d,s
This patch does not cover the case when the address is loaded
from the value of the label or function.
Contributer: Vladimir Medic
llvm-svn: 165561
2012-10-09 23:29:45 +00:00
Douglas Gregor
ecabb8b6ff
Add count() method to MapVector
...
llvm-svn: 165559
2012-10-09 23:02:47 +00:00
Micah Villmow
65c57bffdb
Add in some interfaces that will allow easier access to the pointer address space.
...
llvm-svn: 165554
2012-10-09 22:27:29 +00:00
Bill Wendling
12999bb1df
Use the attribute enums to query if a function has an attribute.
...
llvm-svn: 165551
2012-10-09 21:49:51 +00:00
Bill Wendling
04e6cf2045
Use the attribute enums to query if a parameter has an attribute.
...
llvm-svn: 165550
2012-10-09 21:38:14 +00:00
Bill Wendling
9a38b18e2d
Revert r165547 to fix build.
...
llvm-svn: 165548
2012-10-09 20:56:48 +00:00
Bill Wendling
0db96c685b
Use a single location for calculating the alignments.
...
llvm-svn: 165547
2012-10-09 20:55:16 +00:00
Sean Silva
93b53de78b
tblgen: Rename handleDependencies -> createDependencyFile
...
llvm-svn: 165544
2012-10-09 20:39:28 +00:00
Bill Wendling
9abaefde08
Remove this now unused variable macro.
...
llvm-svn: 165543
2012-10-09 20:35:11 +00:00
Sean Silva
5a739a6322
tblgen: Move dependency file output to a separate function.
...
This keeps it out of the main flow of TableGenMain.
llvm-svn: 165542
2012-10-09 20:29:03 +00:00
Bill Wendling
fee7179aa9
Use appropriate method calls to get the alignment value.
...
llvm-svn: 165541
2012-10-09 20:28:54 +00:00
Chad Rosier
be73f6690c
Whitespace.
...
llvm-svn: 165540
2012-10-09 20:15:02 +00:00
Bill Wendling
31ae26f466
Inline the checks for mutually exclusive attributes since they're used in only one module.
...
llvm-svn: 165539
2012-10-09 20:11:19 +00:00
Rafael Espindola
8e5adfa32c
Enable response files in all tools. Patch by Liu, Yaxun (Sam). I have simplified
...
the test.
llvm-svn: 165535
2012-10-09 19:52:10 +00:00
Bill Wendling
ce3fe97e0d
Move the 'FunctionOnly' attributes thingy inside of the Attributes class.
...
llvm-svn: 165530
2012-10-09 19:01:18 +00:00
Douglas Gregor
97b9fac1c3
Not everyone uses C++11, apparently
...
llvm-svn: 165517
2012-10-09 17:51:56 +00:00
Douglas Gregor
703f076085
Allow MapVector clients to specify the map and vector types, and add a
...
clear() method.
llvm-svn: 165514
2012-10-09 17:49:42 +00:00
Michael Ilseman
e025196817
More descriptive, doxygen-ed comments
...
llvm-svn: 165512
2012-10-09 17:05:59 +00:00
Sean Silva
a400d20965
tblgen: Remove pointless method call.
...
llvm-svn: 165511
2012-10-09 17:03:11 +00:00
Michael Ilseman
072e9fdbb9
New EarlyCSE tests for CSE-ing across commutativity.
...
llvm-svn: 165510
2012-10-09 16:58:13 +00:00
Michael Ilseman
41428d3bb1
Update EarlyCSE's SimpleValues to use Hashing.h for their hashes. Expanded the hashing and equality to allow for equality modulo commutativity for binary ops, and comparisons with swapping of predicates.
...
llvm-svn: 165509
2012-10-09 16:57:38 +00:00
Michael Ilseman
e2a233d237
New value_op_iterator for User. This allows other code to iterate over the User's operands directly as values, which can be convenient.
...
llvm-svn: 165508
2012-10-09 16:55:14 +00:00
David Chisnall
59a1cfd847
Improvements to MIPS64 assembler:
...
- Teach it about dadd[i] instructions and move pseudo-instruction
- Make it parse the register names correctly (for N32 / N64)
llvm-svn: 165506
2012-10-09 16:27:43 +00:00
Micah Villmow
54aac8803f
Add in the first step of the multiple pointer support. This adds in support to the data layout for specifying a per address space pointer size.
...
The next step is to update the optimizers to allow them to optimize the different address spaces with this information.
llvm-svn: 165505
2012-10-09 16:06:12 +00:00
Alexey Samsonov
e30f2442b1
Fixup for r165490: Use DenseMap instead of std::map. Simplify the loop in CollectFunctionDIs.
...
llvm-svn: 165498
2012-10-09 10:34:52 +00:00
Bill Wendling
42dfeb2f05
Move the 'ParameterOnly' variable inside of the Attributes class and make it a method.
...
llvm-svn: 165497
2012-10-09 09:51:10 +00:00
Bill Wendling
793576783f
Remove the now dead VarArgsIncompatible variable.
...
llvm-svn: 165496
2012-10-09 09:33:01 +00:00
Bill Wendling
35d132644f
Use the enum value of the attributes when removing them from the attributes builder.
...
llvm-svn: 165495
2012-10-09 09:17:28 +00:00
Bill Wendling
7d6ddcc8e3
Use the enum value of the attributes when adding them to the attributes builder.
...
llvm-svn: 165494
2012-10-09 09:11:20 +00:00
Alexey Samsonov
561aa02d50
Fix PR14016.
...
DeadArgumentElimination pass can replace one LLVM function with another,
invalidating a pointer stored in debug info metadata entry for this function.
To fix this, we collect debug info descriptors for functions before
running a DeadArgumentElimination pass and "patch" pointers in metadata nodes
if we replace a function.
llvm-svn: 165490
2012-10-09 08:13:15 +00:00
Bill Wendling
b53357de39
Create enums for the different attributes.
...
We use the enums to query whether an Attributes object has that attribute. The
opaque layer is responsible for knowing where that specific attribute is stored.
llvm-svn: 165488
2012-10-09 07:45:08 +00:00
Bill Wendling
8fd2232878
Remove some dead methods.
...
llvm-svn: 165485
2012-10-09 05:54:39 +00:00
Bill Wendling
9d44569e18
Remove ifdef'd code.
...
llvm-svn: 165484
2012-10-09 05:36:15 +00:00
Craig Topper
14aba4d92c
Separate AVXCC and SSECC printing for cmpps/pd/ss/sd and add masking before the switch statement. This keeps the unreachable default case from being hit if the instruction was created with an intrinsic with too large of an immediate.
...
llvm-svn: 165483
2012-10-09 05:26:13 +00:00
NAKAMURA Takumi
66a892ba2d
Revert r117093, "test/Makefile: Force lit -j1 on Cygwin."
...
lit -jN works on cygwin in most cases, but still sometimes I can see stalls with iterative run on the buildbot.
llvm-svn: 165482
2012-10-09 05:07:18 +00:00
Craig Topper
c32072e141
In parseMSRMaskOperand, add an explicit check for the operand being an identifier instead of just having an assert.
...
llvm-svn: 165480
2012-10-09 04:55:28 +00:00
Craig Topper
b15f6b24e6
Remove some dead code from ARMAsmPrinter. Add virtual and LLVM_OVERRIDE to the other methods. Mark some of the helper methods as private.
...
llvm-svn: 165479
2012-10-09 04:23:49 +00:00
Craig Topper
6fe9802628
Remove some unused code in the X86AsmPrinter. Add LLVM_OVERRIDE and virtual keywords to the remaining interface methods.
...
llvm-svn: 165478
2012-10-09 03:50:37 +00:00
Chandler Carruth
e55d2920b1
Fix PR14034, an infloop / heap corruption / crash bug in the new SROA.
...
Thanks to Benjamin for the raw test case. This one took about 50 times
longer to reduce than to fix. =/
llvm-svn: 165476
2012-10-09 01:58:35 +00:00
Nadav Rotem
a8c4b4b426
whitespace
...
llvm-svn: 165475
2012-10-09 01:56:07 +00:00
Sean Silva
00f72940dd
Move misplaced comment.
...
llvm-svn: 165474
2012-10-09 01:47:16 +00:00
Bill Wendling
08940a9caf
Remove a couple more 'hasAttrSomewhere' calls.
...
llvm-svn: 165470
2012-10-09 01:03:48 +00:00
Bill Wendling
2ec286612a
Fix. Apply the no capture attribute to the correct parameter.
...
llvm-svn: 165469
2012-10-09 00:51:40 +00:00
Bill Wendling
6242646539
Convert to using the Attributes::Builder class to create attributes.
...
llvm-svn: 165468
2012-10-09 00:47:36 +00:00