Bill Wendling
f319e9905f
Have 'addFnAttr' take the attribute enum value. Then have it build the attribute object and add it appropriately. No functionality change.
...
llvm-svn: 165595
2012-10-10 03:12:49 +00:00
Reed Kotler
0f2e44a1cb
Reorder some parts of the td file to by in alphabetical order
...
llvm-svn: 165590
2012-10-10 01:58:16 +00:00
Andrew Kaylor
10bc2b456a
Adding comments to clarify the reason for non-standard style in these files.
...
Patch committed on behalf of Kirill Uhanov
llvm-svn: 165589
2012-10-10 01:48:52 +00:00
Andrew Kaylor
b96a320a2e
Cosmetic changes
...
llvm-svn: 165588
2012-10-10 01:45:52 +00:00
Andrew Kaylor
3f31fa05d5
This patch adds new functions to the SectionRef and ObjectFile interfaces to determine whether or not a section is meant to be read-only. These functions will be used by the MCJIT RuntimeDyld to give hints to the memory manager during the object loading process in a future patch.
...
Patch by Ashok Thirumurthi.
llvm-svn: 165586
2012-10-10 01:41:33 +00:00
Akira Hatanaka
9c8dcfc73a
Implement MipsTargetLowering::CanLowerReturn.
...
Patch by Sasa Stankovic.
llvm-svn: 165585
2012-10-10 01:27:09 +00:00
Evan Cheng
3903e1be01
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
780fae8cd6
misched: Add computeInstrLatency to TargetSchedModel.
...
llvm-svn: 165566
2012-10-09 23:44:32 +00:00
Andrew Trick
cfcf5202a1
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
caf1dc7867
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
Jack Carter
543fdf8544
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
Bill Wendling
ff758fbd45
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
8ccd6ca199
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
b3723341f3
Revert r165547 to fix build.
...
llvm-svn: 165548
2012-10-09 20:56:48 +00:00
Bill Wendling
5abc0ef174
Use a single location for calculating the alignments.
...
llvm-svn: 165547
2012-10-09 20:55:16 +00:00
Sean Silva
2f7bf41091
tblgen: Rename handleDependencies -> createDependencyFile
...
llvm-svn: 165544
2012-10-09 20:39:28 +00:00
Sean Silva
0cd3536505
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
4caad41f1e
Use appropriate method calls to get the alignment value.
...
llvm-svn: 165541
2012-10-09 20:28:54 +00:00
Chad Rosier
126d0b8c4d
Whitespace.
...
llvm-svn: 165540
2012-10-09 20:15:02 +00:00
Bill Wendling
9864a6557e
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
be5613c0a7
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
7c04e04a75
Move the 'FunctionOnly' attributes thingy inside of the Attributes class.
...
llvm-svn: 165530
2012-10-09 19:01:18 +00:00
Sean Silva
94c7604832
tblgen: Remove pointless method call.
...
llvm-svn: 165511
2012-10-09 17:03:11 +00:00
Michael Ilseman
336cb79fdf
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
David Chisnall
3705125cc8
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
89021e4740
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
2747e22051
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
908126a745
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
217c9b1916
Remove the now dead VarArgsIncompatible variable.
...
llvm-svn: 165496
2012-10-09 09:33:01 +00:00
Bill Wendling
1c1b324ccf
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
93f70b78fd
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
3b861ec989
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
c9b22d735a
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
bcd425b094
Remove some dead methods.
...
llvm-svn: 165485
2012-10-09 05:54:39 +00:00
Craig Topper
f1c2016075
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
Craig Topper
a004b0d303
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
db092d7aeb
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
ffb1825036
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
503eb2bb49
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
Bill Wendling
f1c60d6d04
Fix. Apply the no capture attribute to the correct parameter.
...
llvm-svn: 165469
2012-10-09 00:51:40 +00:00
Bill Wendling
c1e8e74cbd
Convert to using the Attributes::Builder class to create attributes.
...
llvm-svn: 165468
2012-10-09 00:47:36 +00:00
Bill Wendling
cb4b567f0a
Use an iterator and proper query method instead of the 'hasAttrSomewhere' method.
...
llvm-svn: 165467
2012-10-09 00:34:19 +00:00
Bill Wendling
375eb1f980
Remove more uses of the attribute enums by supplying appropriate query methods for them.
...
No functionality change intended.
llvm-svn: 165466
2012-10-09 00:28:54 +00:00
Bill Wendling
70f3917b0e
Convert to using the Attributes::Builder interface.
...
llvm-svn: 165465
2012-10-09 00:01:21 +00:00
Eric Christopher
286113687a
Fix up comment to be more clear.
...
llvm-svn: 165463
2012-10-08 23:53:45 +00:00
Bill Wendling
c6daefad7e
Use the Attributes::Builder to build the attributes in the parser.
...
llvm-svn: 165458
2012-10-08 23:27:46 +00:00
Nadav Rotem
35315fea70
Refactor the AddrMode class out of TLI to its own header file.
...
This class is used by LSR and a number of places in the codegen.
This is the first step in de-coupling LSR from TLI, and creating
a new interface in between them.
llvm-svn: 165455
2012-10-08 23:06:34 +00:00
Bill Wendling
68d240175b
Convert the LLVM parser over to using the new Attributes::Builder to build its
...
attributes objects.
llvm-svn: 165436
2012-10-08 22:20:14 +00:00
Nick Lewycky
7c3b5d9444
Give CaptureTracker::shouldExplore a base implementation. Most users want to do
...
the same thing. No functionality change.
llvm-svn: 165435
2012-10-08 22:12:48 +00:00
Jakob Stoklund Olesen
9d1173a86e
Don't crash on extra evil irreducible control flow.
...
When the CFG contains a loop with multiple entry blocks, the traces
computed by MachineTraceMetrics don't always have the same nice
properties. Loop back-edges are normally excluded from traces, but
MachineLoopInfo doesn't recognize loops with multiple entry blocks, so
those back-edges may be included.
Avoid asserting when that happens by adding an isEarlierInSameTrace()
function that accurately determines if a dominating block is part of the
same trace AND is above the currrent block in the trace.
llvm-svn: 165434
2012-10-08 22:06:44 +00:00