Bill Wendling
bc011af4a0
Rewrite the addAttr() method.
...
This now uses the AttributeSet object instead of the Attribute /
AttributeWithIndex objects. It's fairly simple now. It goes through all of the
subsets before the one we're modifying, adds them to the new set. It then adds
the modified subset. And then adds the rest of the subsets.
llvm-svn: 173659
2013-01-28 05:23:28 +00:00
NAKAMURA Takumi
e02fd3448b
Revert r173646, "Use proper type for the index."
...
Unfortunately, msvc miscompiles it. Investigating.
llvm-svn: 173656
2013-01-28 04:29:01 +00:00
Michael Gottesman
3d8ed99b1f
Extracted ObjCARC.cpp into its own library libLLVMObjCARCOpts in preparation for refactoring the ARC Optimizer.
...
llvm-svn: 173647
2013-01-28 01:35:51 +00:00
Bill Wendling
5534b9814d
Use proper type for the index.
...
llvm-svn: 173646
2013-01-28 01:30:29 +00:00
Bill Wendling
5783e1e4be
Use proper return type for attribute index.
...
llvm-svn: 173639
2013-01-27 23:50:44 +00:00
Bill Wendling
dd604e3b22
Push the calculation of the 'Raw' attribute mask down into the implementation. It in turn uses the correct list for calculating the 'Raw' value.
...
llvm-svn: 173637
2013-01-27 23:41:29 +00:00
Bill Wendling
fefacc5936
Don't erase these methods. They're used during testing.
...
llvm-svn: 173636
2013-01-27 22:46:17 +00:00
Bill Wendling
89179c02f8
Add special 'get' methods to create an Attribute with an alignment. Also do some random cleanup. No functionality change.
...
llvm-svn: 173635
2013-01-27 22:43:04 +00:00
Bill Wendling
bc0a92c4bd
s/AttrList/pImpl/g in AttributeSet. No functionality change.
...
llvm-svn: 173628
2013-01-27 21:23:46 +00:00
Bill Wendling
8e66ee6471
Fix miscompile. Add back the use of the ArrayRef version of the ::get method.
...
llvm-svn: 173613
2013-01-27 10:28:39 +00:00
Bill Wendling
d3b2ea02ca
Rearrange some deckchairs. Moving the class before it's use.
...
llvm-svn: 173612
2013-01-27 10:00:13 +00:00
Bill Wendling
920cb6d54f
Remove dead methods.
...
llvm-svn: 173611
2013-01-27 09:55:44 +00:00
Bill Wendling
d8d5c37332
Hide the method that creates an AttributeSet with AttributeWithIndexes.
...
This method will go away once AttributeWithIndex goes away. In the meantime,
hide it from general use.
llvm-svn: 173607
2013-01-27 03:35:32 +00:00
David Blaikie
cb286de665
PR14566: Debug Info: Removing top level lexical blocks
...
This adds support for LLVM to accept metadata that doesn't include a top level
lexical block in a function. Specifically LLVM couldn't handle this when there
were file changes relating to these blocks. I've updated a few test cases to
ensure other functionality (such as inlining) isn't affected by this change, but
haven't pervasively updated all the test cases.
llvm-svn: 173592
2013-01-26 21:55:23 +00:00
David Blaikie
86f83366e8
IRBuilder: Remove redundant check around SetInstDebugLocation call.
...
llvm-svn: 173591
2013-01-26 21:55:19 +00:00
NAKAMURA Takumi
ecc293a43b
Object/RelocVisitor: Add minimal support, R_MIPS_32, for mips.
...
It fixes llvm-dwarfdump for mips and mipsel.
llvm-svn: 173567
2013-01-26 08:27:36 +00:00
NAKAMURA Takumi
3e419cb67d
Object/RelocVisitor: Add minimal support, R_PPC64_ADDR32, for ppc64.
...
It fixes llvm-dwarfdump for ppc64-elf.
llvm-svn: 173566
2013-01-26 08:27:29 +00:00
NAKAMURA Takumi
fad4802abd
RelocVisitor::visit(): Set hasError in the default path.
...
llvm-svn: 173565
2013-01-26 08:27:23 +00:00
Andrew Kaylor
2677c75e5d
Add DIContext::getLineInfoForAddressRange() function and test. This function allows a caller to obtain a table of line information for a function using the function's address and size.
...
llvm-svn: 173537
2013-01-26 00:28:05 +00:00
Bill Wendling
d5b4c9438f
Convert BuildLibCalls.cpp to using the AttributeSet methods instead of AttributeWithIndex.
...
llvm-svn: 173536
2013-01-26 00:03:11 +00:00
Bill Wendling
46a6a632dc
Remove dead method.
...
llvm-svn: 173524
2013-01-25 23:14:36 +00:00
Bill Wendling
47efd8b988
Remove some introspection functions.
...
The 'getSlot' function and its ilk allow introspection into the AttributeSet
class. However, that class should be opaque. Allow access through accessor
methods instead.
llvm-svn: 173522
2013-01-25 23:09:36 +00:00
Andrew Kaylor
c9fa0590eb
Add support for applying in-memory relocations to the .debug_line section and, in the case of ELF files, using symbol addresses when available for relocations to the .debug_info section. Also extending the llvm-rtdyld tool to add the ability to dump line number information for testing purposes.
...
llvm-svn: 173517
2013-01-25 22:50:58 +00:00
Reid Kleckner
2796011be7
Add parens to suppress an MSVC 2012 << precedence warning
...
It doesn't seem to like instantiating the isUInt<unsigned N> template
with 6+3, and then doing <<N.
llvm-svn: 173507
2013-01-25 22:12:45 +00:00
Nick Lewycky
4c1f132b0c
Add an insert() method to MapVector. Adds the first MapVector unit test.
...
llvm-svn: 173505
2013-01-25 22:11:02 +00:00
Bill Wendling
4e9de7c89b
Add an accessor method to get the slot's index. This will limit the use of AttributeWithIndex.
...
llvm-svn: 173495
2013-01-25 21:30:53 +00:00
David Blaikie
d448736e8c
This is no trule.
...
llvm-svn: 173487
2013-01-25 20:47:58 +00:00
Eli Bendersky
1b58747212
Add command-line flags for DWARF dumping.
...
Flags for dumping specific DWARF sections added in lib/DebugInfo and
llvm-dwarfdump.
llvm-svn: 173480
2013-01-25 20:26:43 +00:00
Hal Finkel
4279c8573b
Add an addition operator to TableGen
...
This adds an !add(a, b) operator to tablegen; this will be used
to cleanup the PPC register definitions.
llvm-svn: 173445
2013-01-25 14:49:08 +00:00
Andrew Trick
efbba4d345
MachineScheduler support for viewGraph.
...
llvm-svn: 173432
2013-01-25 07:45:29 +00:00
Andrew Trick
8da14ff342
ScheduleDAG: colorize the DOT graph and improve formatting.
...
llvm-svn: 173431
2013-01-25 07:45:25 +00:00
Andrew Trick
1e8e17b0f3
ScheduleDAG: Added isBoundaryNode to conveniently detect a common corner case.
...
This fixes DAG subtree analysis at the boundary.
llvm-svn: 173427
2013-01-25 06:52:30 +00:00
Andrew Trick
85e176ca5c
SchedDFS: Complete support for nested subtrees.
...
Maintain separate per-node and per-tree book-keeping.
Track all instructions above a DAG node including nested subtrees.
Seperately track instructions within a subtree.
Record subtree parents.
llvm-svn: 173426
2013-01-25 06:52:27 +00:00
Andrew Trick
d1ee804aa3
MIsched: Improve the interface to SchedDFS analysis (subtrees).
...
Allow the strategy to select SchedDFS. Allow the results of SchedDFS
to affect initialization of the scheduler state.
llvm-svn: 173425
2013-01-25 06:33:57 +00:00
Andrew Trick
f079be7937
ArrayRef reverse iterators.
...
llvm-svn: 173424
2013-01-25 06:33:52 +00:00
Andrew Trick
1b1a05a92d
whitespace
...
llvm-svn: 173423
2013-01-25 06:33:50 +00:00
Andrew Trick
5050a667f4
SchedDFS: Initial support for nested subtrees.
...
This is mostly refactoring, along with adding an instruction count
within the subtrees and ensuring we only look at data edges.
llvm-svn: 173420
2013-01-25 06:02:44 +00:00
Andrew Trick
e163ac7185
MISched: Add SchedDFSResult to ScheduleDAGMI to formalize the
...
interface and allow other strategies to select it.
llvm-svn: 173413
2013-01-25 04:01:04 +00:00
Andrew Trick
d312d40b4c
SchedDFS: Constify interface.
...
llvm-svn: 173398
2013-01-25 00:12:55 +00:00
Renato Golin
efde585fc3
Moving Cost Tables up to share with other targets
...
llvm-svn: 173382
2013-01-24 23:01:00 +00:00
Richard Trieu
53fe31003c
Add asserts to SmallVector so that calls to front() and back() only succeed
...
if the vector is not empty. This will ensure that calls to these functions
will reference elements in the vector.
llvm-svn: 173321
2013-01-24 04:29:24 +00:00
Andrew Trick
35ccc52ff0
MIsched: Added biasCriticalPath.
...
Allow schedulers to order DAG edges by critical path. This makes
DFS-based heuristics more stable and effective.
llvm-svn: 173317
2013-01-24 02:09:55 +00:00
Michael J. Spencer
c731b2e79a
[ELF] Add R_X86_64_IRELATIVE.
...
llvm-svn: 173316
2013-01-24 02:08:25 +00:00
Bill Wendling
8e189381a8
Add a profile for uniquifying the AttributeSet with the AttributeSetNodes.
...
llvm-svn: 173313
2013-01-24 01:01:34 +00:00
Bill Wendling
1898f7c8a5
Create a new class: AttributeSetNode.
...
This is a helper class for the AttributeSetImpl class. It holds a set of
attributes that apply to a single element: function, return type, or
parameter.
These are uniqued.
llvm-svn: 173310
2013-01-24 00:06:56 +00:00
Bill Wendling
2d899a78d1
Remove dead methods.
...
llvm-svn: 173302
2013-01-23 22:38:33 +00:00
Chad Rosier
90a4bf0816
Initialize SSPBufferSize. PR14999. Patch by Vinson Lee.
...
llvm-svn: 173285
2013-01-23 19:32:37 +00:00
Bill Wendling
9ee1ad34e6
Remove unused methods and ivars.
...
llvm-svn: 173284
2013-01-23 19:06:01 +00:00
Eli Bendersky
9e87cb51e6
Clean up assignment of CalleeSaveStackSlotSize: get rid of the default and explicitly set this in every target that needs to change it from the default.
...
llvm-svn: 173270
2013-01-23 16:22:04 +00:00
Bill Wendling
9e0064d80b
Add the IR attribute 'sspstrong'.
...
SSPStrong applies a heuristic to insert stack protectors in these situations:
* A Protector is required for functions which contain an array, regardless of
type or length.
* A Protector is required for functions which contain a structure/union which
contains an array, regardless of type or length. Note, there is no limit to
the depth of nesting.
* A protector is required when the address of a local variable (i.e., stack
based variable) is exposed. (E.g., such as through a local whose address is
taken as part of the RHS of an assignment or a local whose address is taken as
part of a function argument.)
This patch implements the SSPString attribute to be equivalent to
SSPRequired. This will change in a subsequent patch.
llvm-svn: 173230
2013-01-23 06:41:41 +00:00