1
0
mirror of https://github.com/RPCS3/llvm-mirror.git synced 2024-10-21 03:53:04 +02:00
Commit Graph

15900 Commits

Author SHA1 Message Date
Owen Anderson
46c3ebc1a6 Implement a correct copy constructor for Record. Now that we're using the ID number as a key in maps (for determinism), it is imperative that ID numbers be globally unique, even when we copy construct a Record.
This fixes some obscure failure cases involving registers defined inside multiclasses or foreach constructs that would not receive a unique ID, and would end up being omitted from the AsmMatcher tables.

llvm-svn: 164251
2012-09-19 21:34:18 +00:00
Andrew Kaylor
960981f691 This patch adds memory support functions which will later be used to implement section-specific protection handling in MCJIT.
llvm-svn: 164249
2012-09-19 20:46:12 +00:00
Preston Gurd
79d6f55f89 Add support for macro parameters/arguments delimited by spaces,
to improve compatibility with GNU as.

Based on a patch by PaX Team.

Fixed assertion failures on non-Darwin and added additional test cases.

llvm-svn: 164248
2012-09-19 20:36:12 +00:00
Michael Ilseman
462b51585f Document the interface for integer expansion, using doxygen-style comments
llvm-svn: 164231
2012-09-19 16:03:57 +00:00
Michael Ilseman
c064f031ff Forward declarations
llvm-svn: 164230
2012-09-19 15:55:03 +00:00
Will Dietz
6c3d864486 Fix minor typo in IntervalPartition.h
llvm-svn: 164222
2012-09-19 13:45:43 +00:00
Rafael Espindola
8926dd6aeb Make MapVector a bit more expensive but harder to misuse. We now only
provide insertion order iteration, instead of the old option of
DenseMap order iteration over keys and insertion order iteration over
values.
This is implemented by keeping two copies of each key.

llvm-svn: 164221
2012-09-19 13:42:51 +00:00
Benjamin Kramer
13bd00c244 InlineCost: Make TotalAllocaSizeRecursiveCaller unsigned to avoid sign-compare warnings.
It's a size, not a cost.

llvm-svn: 164219
2012-09-19 13:22:27 +00:00
Benjamin Kramer
96b6f5646b Remove unused and broken CloneFunction wrapper.
It converted the CodeInfo argument to bool implicitly.

llvm-svn: 164215
2012-09-19 13:03:01 +00:00
Nadav Rotem
f6de6e1e82 Prevent inlining of callees which allocate lots of memory into a recursive caller.
Example:

void foo() {
 ... foo();   // I'm recursive!

  bar();
}

bar() {  int a[1000];  // large stack size }

rdar://10853263

llvm-svn: 164207
2012-09-19 08:08:04 +00:00
Sean Silva
eedf4ffbcb Refactor Record* by-ID comparator to Record.h
This is a generally useful utility; there's no reason to have it hidden
in CodeGenDAGPatterns.cpp.

Also, rename it to fit the other comparators in Record.h

Review by Jakob.

llvm-svn: 164189
2012-09-19 01:47:00 +00:00
Michael Ilseman
2555741dad New utility for expanding integer division for targets that don't support it.
Implementation derived from compiler-rt's implementation of signed and unsigned integer division.

llvm-svn: 164173
2012-09-18 22:02:40 +00:00
Rafael Espindola
528ca88d0c Add a MapVector class. It provides a regular set iteration, but
also provides a insertion order iteration over the values.

llvm-svn: 164157
2012-09-18 18:43:21 +00:00
Roman Divacky
bb7740900c Avoid symbol name clash when filling TOC.
Patch by Adhemerval Zanella.

llvm-svn: 164141
2012-09-18 17:10:37 +00:00
Roman Divacky
1e332ec870 Add PowerPC64 relocation definitions. Patch by Adhemerval Zanella!
llvm-svn: 164137
2012-09-18 16:38:02 +00:00
Roman Divacky
e91b4521bf When creating MCAsmBackend pass the CPU string as well. In X86AsmBackend
store this and use it to not emit long nops when the CPU is geode which
doesnt support them.

Fixes PR11212.

llvm-svn: 164132
2012-09-18 16:08:49 +00:00
Tom Stellard
7839a3cf23 Make MachinePostDominatorTree::DT private
llvm-svn: 164125
2012-09-18 13:49:54 +00:00
Andrew Trick
6cba50cbb4 Replaced ReInitMCSubtargetInfo with InitMCProcessor.
Now where we used to call ReInitMCSubtargetInfo, we actually recompute
the same information as InitMCSubtargetInfo instead of only setting
the feature bits.

llvm-svn: 164105
2012-09-18 05:33:15 +00:00
Craig Topper
04a52acb1d Fix a typo. No functional change.
llvm-svn: 164100
2012-09-18 04:43:05 +00:00
Andrew Trick
1a1e7664ae Let NULL slip through again.
llvm-svn: 164099
2012-09-18 04:18:39 +00:00
Andrew Trick
e3e6fae309 TargetSchedModel API. Implement latency lookup, disabled.
llvm-svn: 164098
2012-09-18 04:03:34 +00:00
Andrew Trick
c2ee4420fd TableGen subtarget emitter. Remove unnecessary header dependence.
llvm-svn: 164094
2012-09-18 03:32:57 +00:00
Craig Topper
06c859569e Mark unimplemented operator new as LLVM_DELETED_FUNCTION.
llvm-svn: 164093
2012-09-18 03:25:49 +00:00
Andrew Trick
65c7aae93f TableGen subtarget emitter. Initialize MCSubtargetInfo with the new machine model.
llvm-svn: 164092
2012-09-18 03:18:56 +00:00
Craig Topper
e65078e3c3 Mark constructors, destructors, and operator new commented as 'do not implement' with LLVM_DELETED_FUNCTION instead.
llvm-svn: 164091
2012-09-18 02:05:45 +00:00
Craig Topper
5a3d1cefa5 Mark unimplemented copy constructors and copy assignment operators as LLVM_DELETED_FUNCTION.
llvm-svn: 164090
2012-09-18 02:01:41 +00:00
Jakob Stoklund Olesen
b761721812 Merge into undefined lanes under -new-coalescer.
Add LIS::pruneValue() and extendToIndices(). These two functions are
used by the register coalescer when merging two live ranges requires
more than a trivial value mapping as supported by LiveInterval::join().

The pruneValue() function can remove the part of a value number that is
going to conflict in join(). Afterwards, extendToIndices can restore the
live range, using any new dominating value numbers and updating the SSA
form.

Use this complex value mapping to support merging a register into a
vector lane that has a conflicting value, but the clobbered lane is
undef.

llvm-svn: 164074
2012-09-17 23:03:25 +00:00
Andrew Trick
150c97940b Revert r164061-r164067. Most of the new subtarget emitter.
I have to work out the Target/CodeGen header dependencies
before putting this back.

llvm-svn: 164072
2012-09-17 23:00:42 +00:00
Richard Smith
f96c884c89 Remove redundant semicolons to fix -pedantic-errors build break with older Clangs.
llvm-svn: 164071
2012-09-17 22:52:05 +00:00
NAKAMURA Takumi
71a6ab5ec1 llvm/Target/TargetSubtargetInfo.h: Fix case in #include, s#llvm/Codegen/#llvm/CodeGen#.
llvm-svn: 164070
2012-09-17 22:34:56 +00:00
Andrew Trick
cc6a5dbc2b Don't use NULL as a fake keyword
llvm-svn: 164067
2012-09-17 22:26:34 +00:00
Andrew Trick
9400ee3c79 InitMCProcessor
llvm-svn: 164066
2012-09-17 22:19:12 +00:00
Andrew Trick
3d3f796f3f TargetSchedModel API. Implement latency lookup, disabled.
llvm-svn: 164065
2012-09-17 22:19:08 +00:00
Andrew Trick
7403ff5282 TableGen subtarget emitter. Generate resolveSchedClass generated hook for resolving instruction variants.
llvm-svn: 164062
2012-09-17 22:18:58 +00:00
Andrew Trick
8a499d1f62 TableGen subtarget emitter. Initialize MCSubtargetInfo with the new machine model.
llvm-svn: 164061
2012-09-17 22:18:55 +00:00
Tom Stellard
a909d69703 Add a MachinePostDominator pass
This is used in the AMDIL and R600 backends.

llvm-svn: 164029
2012-09-17 14:08:37 +00:00
Sid Manning
18c80378fb Add Michael Spencer's iterator class for stepping through relocations. Add method that, given a symbol index, will return the symbol's data.
llvm-svn: 164026
2012-09-17 12:27:39 +00:00
Craig Topper
24f46609c1 Mark unimplemented copy constructors and copy assignment operators as LLVM_DELETED_FUNCTION.
llvm-svn: 164017
2012-09-17 07:16:40 +00:00
Craig Topper
ef3c8f8807 Mark unimplemented copy constructors and copy assignment operators as LLVM_DELETED_FUNCTION.
llvm-svn: 164016
2012-09-17 06:59:23 +00:00
Craig Topper
1d55f3f906 Mark unimplemented copy constructors and copy assignment operators as LLVM_DELETED_FUNCTION.
llvm-svn: 164015
2012-09-17 06:43:55 +00:00
Craig Topper
f2e8b27fbc Mark unimplemented copy constructors and copy assignment operators as LLVM_DELETED_FUNCTION.
llvm-svn: 164014
2012-09-17 06:31:17 +00:00
Craig Topper
7ace4c590b Remove a couple unused fields. Not detected by Wunused-private-field because of unimplemented copy constructor and copy assignment operator that make the class look incomplete. Upcoming patch will mark them deleted.
llvm-svn: 164013
2012-09-17 06:05:39 +00:00
Craig Topper
c956a94300 Add include of Compiler.h to fix build bot failures.
llvm-svn: 164009
2012-09-16 21:56:23 +00:00
Craig Topper
a654200309 Add includes of Compiler.h to fix build bot failures.
llvm-svn: 164008
2012-09-16 21:50:09 +00:00
Craig Topper
13109b709d Use LLVM_DELETED_FUNCTION for copy constructors and copy assignment operators that aren't implemented.
llvm-svn: 164007
2012-09-16 21:43:09 +00:00
Craig Topper
d34712230a Use LLVM_DELETED_FUNCTION for copy constructors and copy assignment operators that aren't implemented.
llvm-svn: 164006
2012-09-16 21:37:56 +00:00
Craig Topper
73f5e77c6f Add LLVM_OVERRIDE and LLVM_FINAL C++11 compatibility macros.
llvm-svn: 164005
2012-09-16 20:53:30 +00:00
Craig Topper
6a41128e52 Add explicit virtual keywords for methods that override base class.
llvm-svn: 163996
2012-09-16 07:39:55 +00:00
Andrew Trick
e7a0178af4 Guard fields by NDEBUG until they get used in the release build.
llvm-svn: 163993
2012-09-16 05:55:04 +00:00
Craig Topper
a71d0f57b9 Tidy up formatting of some elses on a separate line from preceding bracing. No functional change.
llvm-svn: 163992
2012-09-16 03:00:03 +00:00