Stepan Dyatkovskiy
2c2cb3c09f
Fix for LDRB instruction:
...
SDNode for LDRB_POST_IMM is invalid: number of registers added to SDNode fewer
that described in .td.
7 ops is needed, but SDNode with only 6 is created.
In more details:
In ARMInstrInfo.td, in multiclass AI2_ldridx, in definition _POST_IMM, offset
operand is defined as am2offset_imm. am2offset_imm is complex parameter type,
and actually it consists from dummy register and imm itself. As I understood
trick with dummy reg was made for AsmParser. In ARMISelLowering.cpp, this dummy
register was not added to SDNode, and it cause crash in Peephole Optimizer pass.
The problem fixed by setting up additional dummy reg when emitting
LDRB_POST_IMM instruction.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@165617 91177308-0d34-0410-b5e6-96231b3b80d8
2012-10-10 11:43:40 +00:00
Stepan Dyatkovskiy
661afe75e8
Issue description:
...
SchedulerDAGInstrs::buildSchedGraph ignores dependencies between FixedStack
objects and byval parameters. So loading byval parameters from stack may be
inserted *before* it will be stored, since these operations are treated as
independent.
Fix:
Currently ARMTargetLowering::LowerFormalArguments saves byval registers with
FixedStack MachinePointerInfo. To fix the problem we need to store byval
registers with MachinePointerInfo referenced to first the "byval" parameter.
Also commit adds two new fields to the InputArg structure: Function's argument
index and InputArg's part offset in bytes relative to the start position of
Function's argument. E.g.: If function's argument is 128 bit width and it was
splitted onto 32 bit regs, then we got 4 InputArg structs with same arg index,
but different offset values.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@165616 91177308-0d34-0410-b5e6-96231b3b80d8
2012-10-10 11:37:36 +00:00
Bill Wendling
5054c35969
Cleanup. Get rid of now dead code.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@165613 91177308-0d34-0410-b5e6-96231b3b80d8
2012-10-10 08:03:34 +00:00
Bill Wendling
7d2f2496c1
Remove the final bits of Attributes being declared in the Attribute
...
namespace. Use the attribute's enum value instead. No functionality change
intended.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@165610 91177308-0d34-0410-b5e6-96231b3b80d8
2012-10-10 07:36:45 +00:00
Lang Hames
8a8cf9617c
My earlier "fix" for PBQP (see r165201) was incorrect. The real issue was that
...
checkRegMaskInterference only initializes the bitmask on the first interference.
This fixes PR14027 and (re)fixes PR13945.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@165608 91177308-0d34-0410-b5e6-96231b3b80d8
2012-10-10 06:39:48 +00:00
Bill Wendling
11d00420e4
Pass into the AttributeWithIndex::get method an ArrayRef of attribute
...
enums. These are then created via the correct Attributes creation method.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@165607 91177308-0d34-0410-b5e6-96231b3b80d8
2012-10-10 06:13:42 +00:00
Andrew Trick
82d46aec62
misched: fall-back to a target hook for instr bundles.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@165606 91177308-0d34-0410-b5e6-96231b3b80d8
2012-10-10 05:43:18 +00:00
Andrew Trick
85c7b6108f
TODO comment
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@165605 91177308-0d34-0410-b5e6-96231b3b80d8
2012-10-10 05:43:16 +00:00
Andrew Trick
dbe6d43dfa
TableGen subtarget emitter cleanup.
...
Consistently evaluate Aliases and Sequences recursively.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@165604 91177308-0d34-0410-b5e6-96231b3b80d8
2012-10-10 05:43:13 +00:00
Andrew Trick
412cd2f813
misched: Use the TargetSchedModel interface wherever possible.
...
Allows the new machine model to be used for NumMicroOps and OutputLatency.
Allows the HazardRecognizer to be disabled along with itineraries.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@165603 91177308-0d34-0410-b5e6-96231b3b80d8
2012-10-10 05:43:09 +00:00
Andrew Trick
6312cb0997
misched: Generate IsBuffered flag for machine resources.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@165602 91177308-0d34-0410-b5e6-96231b3b80d8
2012-10-10 05:43:04 +00:00
Andrew Trick
2d15d641aa
whitespace
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@165601 91177308-0d34-0410-b5e6-96231b3b80d8
2012-10-10 05:43:01 +00:00
Bill Wendling
c33b9304da
Place temporary LTO files into their own subdirectory.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@165599 91177308-0d34-0410-b5e6-96231b3b80d8
2012-10-10 05:29:15 +00:00
Bill Wendling
f5e6d70f8c
Have 'addFnAttr' take the attribute enum value. Then have it build the attribute object and add it appropriately. No functionality change.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@165595 91177308-0d34-0410-b5e6-96231b3b80d8
2012-10-10 03:12:49 +00:00
Craig Topper
ebf3a37c0a
Test case for r165480.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@165594 91177308-0d34-0410-b5e6-96231b3b80d8
2012-10-10 02:54:23 +00:00
Reed Kotler
a5971e8c00
Reorder some parts of the td file to by in alphabetical order
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@165590 91177308-0d34-0410-b5e6-96231b3b80d8
2012-10-10 01:58:16 +00:00
Andrew Kaylor
3c9019d08f
Adding comments to clarify the reason for non-standard style in these files.
...
Patch committed on behalf of Kirill Uhanov
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@165589 91177308-0d34-0410-b5e6-96231b3b80d8
2012-10-10 01:48:52 +00:00
Andrew Kaylor
30b20ebdd3
Cosmetic changes
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@165588 91177308-0d34-0410-b5e6-96231b3b80d8
2012-10-10 01:45:52 +00:00
Andrew Kaylor
3a129c8592
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.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@165586 91177308-0d34-0410-b5e6-96231b3b80d8
2012-10-10 01:41:33 +00:00
Akira Hatanaka
97d9f081a9
Implement MipsTargetLowering::CanLowerReturn.
...
Patch by Sasa Stankovic.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@165585 91177308-0d34-0410-b5e6-96231b3b80d8
2012-10-10 01:27:09 +00:00
Bob Wilson
52bcafe4bf
Revert "Use a special path to place the .o files in."
...
This reverts commit 165428 in an attempt to get our buildbots going.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@165574 91177308-0d34-0410-b5e6-96231b3b80d8
2012-10-09 23:59:01 +00:00
Michael Liao
7208fae969
Add extra vim swap file pattern
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@165569 91177308-0d34-0410-b5e6-96231b3b80d8
2012-10-09 23:48:34 +00:00
Evan Cheng
e61e516a51
When expanding atomic load arith instructions, do not lose target flags. rdar://12453106
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@165568 91177308-0d34-0410-b5e6-96231b3b80d8
2012-10-09 23:48:33 +00:00
Andrew Trick
c0dfffa448
misched: Add computeInstrLatency to TargetSchedModel.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@165566 91177308-0d34-0410-b5e6-96231b3b80d8
2012-10-09 23:44:32 +00:00
Andrew Trick
c92d72abd0
misched: Doxument the TargetSchedule API.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@165565 91177308-0d34-0410-b5e6-96231b3b80d8
2012-10-09 23:44:29 +00:00
Andrew Trick
42bb106118
misched: Allow flags to disable hasInstrSchedModel/hasInstrItineraries for external users of TargetSchedule.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@165564 91177308-0d34-0410-b5e6-96231b3b80d8
2012-10-09 23:44:26 +00:00
Andrew Trick
714973e459
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.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@165563 91177308-0d34-0410-b5e6-96231b3b80d8
2012-10-09 23:44:23 +00:00
Bill Wendling
1b005075b6
Use the attribute builder to add attributes to call/invoke instruction. No functionality change intended.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@165562 91177308-0d34-0410-b5e6-96231b3b80d8
2012-10-09 23:40:31 +00:00
Jack Carter
2f68b311a1
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
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@165561 91177308-0d34-0410-b5e6-96231b3b80d8
2012-10-09 23:29:45 +00:00
Douglas Gregor
8161d81239
Add count() method to MapVector
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@165559 91177308-0d34-0410-b5e6-96231b3b80d8
2012-10-09 23:02:47 +00:00
Micah Villmow
63b8ab29c4
Add in some interfaces that will allow easier access to the pointer address space.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@165554 91177308-0d34-0410-b5e6-96231b3b80d8
2012-10-09 22:27:29 +00:00
Bill Wendling
2fa8af224e
Use the attribute enums to query if a function has an attribute.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@165551 91177308-0d34-0410-b5e6-96231b3b80d8
2012-10-09 21:49:51 +00:00
Bill Wendling
3e2d76c946
Use the attribute enums to query if a parameter has an attribute.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@165550 91177308-0d34-0410-b5e6-96231b3b80d8
2012-10-09 21:38:14 +00:00
Bill Wendling
9ef99c96da
Revert r165547 to fix build.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@165548 91177308-0d34-0410-b5e6-96231b3b80d8
2012-10-09 20:56:48 +00:00
Bill Wendling
f8db977b68
Use a single location for calculating the alignments.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@165547 91177308-0d34-0410-b5e6-96231b3b80d8
2012-10-09 20:55:16 +00:00
Sean Silva
1ed3b427fa
tblgen: Rename handleDependencies -> createDependencyFile
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@165544 91177308-0d34-0410-b5e6-96231b3b80d8
2012-10-09 20:39:28 +00:00
Bill Wendling
391d042c4e
Remove this now unused variable macro.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@165543 91177308-0d34-0410-b5e6-96231b3b80d8
2012-10-09 20:35:11 +00:00
Sean Silva
88dbc5e6c3
tblgen: Move dependency file output to a separate function.
...
This keeps it out of the main flow of TableGenMain.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@165542 91177308-0d34-0410-b5e6-96231b3b80d8
2012-10-09 20:29:03 +00:00
Bill Wendling
6b73e8a280
Use appropriate method calls to get the alignment value.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@165541 91177308-0d34-0410-b5e6-96231b3b80d8
2012-10-09 20:28:54 +00:00
Chad Rosier
4f8d27338e
Whitespace.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@165540 91177308-0d34-0410-b5e6-96231b3b80d8
2012-10-09 20:15:02 +00:00
Bill Wendling
28d1c60f89
Inline the checks for mutually exclusive attributes since they're used in only one module.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@165539 91177308-0d34-0410-b5e6-96231b3b80d8
2012-10-09 20:11:19 +00:00
Rafael Espindola
b4e971f376
Enable response files in all tools. Patch by Liu, Yaxun (Sam). I have simplified
...
the test.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@165535 91177308-0d34-0410-b5e6-96231b3b80d8
2012-10-09 19:52:10 +00:00
Bill Wendling
3a106e6036
Move the 'FunctionOnly' attributes thingy inside of the Attributes class.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@165530 91177308-0d34-0410-b5e6-96231b3b80d8
2012-10-09 19:01:18 +00:00
Douglas Gregor
62430fd1a1
Not everyone uses C++11, apparently
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@165517 91177308-0d34-0410-b5e6-96231b3b80d8
2012-10-09 17:51:56 +00:00
Douglas Gregor
289c39965b
Allow MapVector clients to specify the map and vector types, and add a
...
clear() method.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@165514 91177308-0d34-0410-b5e6-96231b3b80d8
2012-10-09 17:49:42 +00:00
Michael Ilseman
798290e744
More descriptive, doxygen-ed comments
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@165512 91177308-0d34-0410-b5e6-96231b3b80d8
2012-10-09 17:05:59 +00:00
Sean Silva
80d94e053a
tblgen: Remove pointless method call.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@165511 91177308-0d34-0410-b5e6-96231b3b80d8
2012-10-09 17:03:11 +00:00
Michael Ilseman
440ae6800e
New EarlyCSE tests for CSE-ing across commutativity.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@165510 91177308-0d34-0410-b5e6-96231b3b80d8
2012-10-09 16:58:13 +00:00
Michael Ilseman
39285ab6dd
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.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@165509 91177308-0d34-0410-b5e6-96231b3b80d8
2012-10-09 16:57:38 +00:00
Michael Ilseman
e9c6f98b1e
New value_op_iterator for User. This allows other code to iterate over the User's operands directly as values, which can be convenient.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@165508 91177308-0d34-0410-b5e6-96231b3b80d8
2012-10-09 16:55:14 +00:00