Stepan Dyatkovskiy
5182bb8695
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.
llvm-svn: 165616
2012-10-10 11:37:36 +00:00
Bill Wendling
196ccddf1b
Cleanup. Get rid of now dead code.
...
llvm-svn: 165613
2012-10-10 08:03:34 +00:00
Bill Wendling
f3c4f64b79
Remove the final bits of Attributes being declared in the Attribute
...
namespace. Use the attribute's enum value instead. No functionality change
intended.
llvm-svn: 165610
2012-10-10 07:36:45 +00:00
Bill Wendling
a55d5af923
Pass into the AttributeWithIndex::get method an ArrayRef of attribute
...
enums. These are then created via the correct Attributes creation method.
llvm-svn: 165607
2012-10-10 06:13:42 +00:00
Andrew Trick
79d929fd43
TODO comment
...
llvm-svn: 165605
2012-10-10 05:43:16 +00:00
Andrew Trick
4ca94d939c
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.
llvm-svn: 165603
2012-10-10 05:43:09 +00:00
Andrew Trick
13b4f59560
misched: Generate IsBuffered flag for machine resources.
...
llvm-svn: 165602
2012-10-10 05:43:04 +00:00
Bill Wendling
5f457b4ddd
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
Andrew Kaylor
b850da774b
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
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
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
9abaefde08
Remove this now unused variable macro.
...
llvm-svn: 165543
2012-10-09 20:35:11 +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
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
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
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
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
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
4fa0f48d90
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
c00f4a514d
Convert to using the Attributes::Builder interface.
...
llvm-svn: 165465
2012-10-09 00:01:21 +00:00
Bill Wendling
049a2c0fba
Update comment.
...
llvm-svn: 165461
2012-10-08 23:51:19 +00:00
Bill Wendling
a95eee725b
Use the Attributes::Builder to build the attributes in the parser.
...
llvm-svn: 165458
2012-10-08 23:27:46 +00:00
Nadav Rotem
e05c974426
Use DataTypes.h
...
llvm-svn: 165457
2012-10-08 23:14:28 +00:00
Nadav Rotem
c94270cb4d
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
12b21caa9a
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
7708f19f82
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
Bill Wendling
8f296ad68b
Begin the transition to using the AttributesImpl object for the Attributes ivar.
...
Start using the AttributesImpl object to hold the value of the attributes. All
queries go through the interfaces now.
This has one unfortunate consequence. I needed to move the AttributesImpl.h file
into include/llvm. But this is only temporary! Otherwise, the changes needed to
support this would be too large.
llvm-svn: 165433
2012-10-08 21:47:17 +00:00
Eric Christopher
ab7c040025
Update comment.
...
llvm-svn: 165431
2012-10-08 21:41:18 +00:00
Andrew Trick
957ebf0670
misched: remove the unused getSpecialAddressLatency hook.
...
llvm-svn: 165418
2012-10-08 18:54:00 +00:00