Commit Graph

82508 Commits

Author SHA1 Message Date
Daniel Dunbar
e1accd7660 [utils] Fix Get{RepositoryPath,SourceVersion} to have a more robust is-git-svn
check.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@156836 91177308-0d34-0410-b5e6-96231b3b80d8
2012-05-15 18:44:09 +00:00
Jim Grosbach
0ee07e0130 TableGen'erate mapping physical registers to encoding values.
Many targets always use the same bitwise encoding value for physical
registers in all (or most) instructions. Add this mapping to the
.td files and TableGen'erate the information and expose an accessor
in MCRegisterInfo.

patch by Tom Stellard.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@156829 91177308-0d34-0410-b5e6-96231b3b80d8
2012-05-15 17:35:57 +00:00
Jim Grosbach
918f55fe23 Allow MCCodeEmitter access to the target MCRegisterInfo.
Add the MCRegisterInfo to the factories and constructors.

Patch by Tom Stellard <Tom.Stellard@amd.com>.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@156828 91177308-0d34-0410-b5e6-96231b3b80d8
2012-05-15 17:35:52 +00:00
Sirish Pande
0031af6615 Enable all Hexagon tests.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@156824 91177308-0d34-0410-b5e6-96231b3b80d8
2012-05-15 16:13:12 +00:00
Nuno Lopes
39de32f497 minor simplification to code: Ty is already a SCEV type; don't need to run getEffectiveSCEVType() twice
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@156823 91177308-0d34-0410-b5e6-96231b3b80d8
2012-05-15 15:44:38 +00:00
David Chisnall
6dd3bdb18a Add some release notes about compiler-rt and libc++
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@156819 91177308-0d34-0410-b5e6-96231b3b80d8
2012-05-15 13:06:46 +00:00
David Majnemer
ac78266674 Teach SimplifyLibCalls about stpcpy.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@156815 91177308-0d34-0410-b5e6-96231b3b80d8
2012-05-15 11:46:21 +00:00
Bill Wendling
fc6fd994ab Remove warning about testing unsigned int with int.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@156812 91177308-0d34-0410-b5e6-96231b3b80d8
2012-05-15 09:59:13 +00:00
Stepan Dyatkovskiy
661f760320 Fixed one small stupid, but critical bug.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@156810 91177308-0d34-0410-b5e6-96231b3b80d8
2012-05-15 09:21:39 +00:00
Stepan Dyatkovskiy
c2c52a6470 Rejected r156804 due to buildbots failures.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@156808 91177308-0d34-0410-b5e6-96231b3b80d8
2012-05-15 06:50:18 +00:00
Stepan Dyatkovskiy
a62e235c1c SelectionDAGBuilder::Clusterify : main functinality was replaced with CRSBuilder::optimize, so big part of Clusterify's code was reduced.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@156804 91177308-0d34-0410-b5e6-96231b3b80d8
2012-05-15 05:09:41 +00:00
Akira Hatanaka
24d86e0ca9 Temporarily disable anti-dependence breaking for Mips until bug 12829 is
resolved.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@156801 91177308-0d34-0410-b5e6-96231b3b80d8
2012-05-15 03:14:52 +00:00
Jakob Stoklund Olesen
40c6fb397d Create a struct representing register units in TableGen.
Besides the weight, we also want to store up to two root registers per
unit. Most units will have a single root, the leaf register they
represent. Units created for ad hoc aliasing get two roots: The two
aliasing registers.

The root registers can be used to compute the set of overlapping
registers.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@156792 91177308-0d34-0410-b5e6-96231b3b80d8
2012-05-15 00:50:23 +00:00
Bill Wendling
ecb3f43d64 Remove extraneous ';'.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@156791 91177308-0d34-0410-b5e6-96231b3b80d8
2012-05-15 00:41:56 +00:00
Akira Hatanaka
f9c3f3b8a8 Add a command line option to skip the delay slot filler pass entirely for Mips.
The purpose of this option is to silence error messages issued by machine
verifier passes and enable them to run to the end. If this option is not
provided, -verify-machineinstrs complains when it discovers there is a
non-terminator instruction (an instruction that is in a delay slot) after the
first terminator in a basic block.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@156790 91177308-0d34-0410-b5e6-96231b3b80d8
2012-05-14 23:59:17 +00:00
Michael J. Spencer
24b709529f [Support/YAMLParser] Use rtrim on plain scalars.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@156787 91177308-0d34-0410-b5e6-96231b3b80d8
2012-05-14 22:43:34 +00:00
Michael J. Spencer
752026b69e [Support/COFF] Make the order of members in symbol match the standard.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@156785 91177308-0d34-0410-b5e6-96231b3b80d8
2012-05-14 22:43:21 +00:00
David Blaikie
9cc178726f Fix use of uninitialized variable.
Found by GCC's maybe-uninitialized.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@156780 91177308-0d34-0410-b5e6-96231b3b80d8
2012-05-14 21:48:19 +00:00
Jakob Stoklund Olesen
6565a70970 Don't access MO reference after invalidating operand list.
This should unbreak llvm-x86_64-linux.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@156778 91177308-0d34-0410-b5e6-96231b3b80d8
2012-05-14 21:30:58 +00:00
Jakob Stoklund Olesen
4d10829e12 Fix PR12821.
RAFast must add an <imp-def> operand when it is rewriting a sub-register
def that isn't a read-modify-write.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@156777 91177308-0d34-0410-b5e6-96231b3b80d8
2012-05-14 21:10:25 +00:00
Chad Rosier
3a884f5c17 Move the capture analysis from MemoryDependencyAnalysis to a more general place
so that it can be reused in MemCpyOptimizer.  This analysis is needed to remove
an unnecessary memcpy when returning a struct into a local variable.
rdar://11341081
PR12686


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@156776 91177308-0d34-0410-b5e6-96231b3b80d8
2012-05-14 20:35:04 +00:00
Brendon Cahoon
5262abb268 Revert 156634 upon request until code improvement changes are made.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@156775 91177308-0d34-0410-b5e6-96231b3b80d8
2012-05-14 19:35:42 +00:00
Dan Gohman
a6063c6e29 Rename @llvm.debugger to @llvm.debugtrap.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@156774 91177308-0d34-0410-b5e6-96231b3b80d8
2012-05-14 18:58:10 +00:00
Akira Hatanaka
19e7421243 Release notes for MIPS backend.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@156772 91177308-0d34-0410-b5e6-96231b3b80d8
2012-05-14 18:40:07 +00:00
Andrew Trick
ecef06a497 Remove a stale forward declaration.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@156770 91177308-0d34-0410-b5e6-96231b3b80d8
2012-05-14 18:03:19 +00:00
Jakob Stoklund Olesen
0057022489 Remove the expensive BitVector::operator~().
Returning a temporary BitVector is very expensive. If you must, create
the temporary explicitly: Use BitVector(A).flip() instead of ~A.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@156768 91177308-0d34-0410-b5e6-96231b3b80d8
2012-05-14 15:46:27 +00:00
Jakob Stoklund Olesen
9e10d773e1 Remove BitVector binops.
These operators were crazy slow, calling malloc to return a temporary
result. At the same time, they look very innocent when used in code.

If you need temporary BitVectors to compute your thing, create them
explicitly, and use the inplace logical operators. This makes the high
cost explicit in the code.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@156767 91177308-0d34-0410-b5e6-96231b3b80d8
2012-05-14 15:37:25 +00:00
Jakob Stoklund Olesen
f402602199 Consider ad hoc aliasing when building RegUnits.
Register units can be used to compute if two registers overlap:

  A overlaps B iff units(A) intersects units(B).

With this change, the above holds true even on targets that use ad hoc
aliasing (currently only ARM). This means that register units can be
used to implement regsOverlap() more efficiently, and the register
allocator can use the concept to model interference.

When there is no ad hoc aliasing, the register units correspond to the
maximal cliques in the register overlap graph. This is optimal, no other
register unit assignment can have fewer units.

With ad hoc aliasing, weird things are possible, and we don't try too
hard to compute the maximal cliques. The current approach is always
correct, and it works very well (probably optimally) as long as the ad
hoc aliasing doesn't have cliques larger than pairs. It seems unlikely
that any target would need more.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@156763 91177308-0d34-0410-b5e6-96231b3b80d8
2012-05-14 15:20:39 +00:00
Jakob Stoklund Olesen
31d938a6b1 Record the ad hoc aliasing graph in CodeGenRegister.
The ad hoc aliasing specified in the 'Aliases' list in .td files is
currently only used by computeOverlaps(). It will soon be needed to
build accurate register units as well, so build the undirected graph in
CodeGenRegister::buildObjectGraph() instead.

Aliasing is a symmetric relationship with only one direction specified
in the .td files. Make sure both directions are represented in
getExplicitAliases().

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@156762 91177308-0d34-0410-b5e6-96231b3b80d8
2012-05-14 15:12:37 +00:00
Jakob Stoklund Olesen
b81cbc271f Compute topological signatures of registers.
TableGen creates new register classes and sub-register indices based on
the sub-register structure present in the register bank. So far, it has
been doing that on a per-register basis, but that is not very efficient.

This patch teaches TableGen to compute topological signatures for
registers, and use that to reduce the amount of redundant computation.
Registers get the same TopoSig if they have identical sub-register
structure.

TopoSigs are not currently exposed outside TableGen.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@156761 91177308-0d34-0410-b5e6-96231b3b80d8
2012-05-14 15:10:07 +00:00
Jakob Stoklund Olesen
03a3811ab4 Add BitVector::anyCommon().
The existing operation (A & B).any() is very slow.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@156760 91177308-0d34-0410-b5e6-96231b3b80d8
2012-05-14 15:01:19 +00:00
Stepan Dyatkovskiy
734dde8e05 SwitchInst cosmetics: renamed "Hash" method to "hash"
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@156757 91177308-0d34-0410-b5e6-96231b3b80d8
2012-05-14 08:26:31 +00:00
Bill Wendling
1fefd099cf Formatting changes. Remove the '...' placeholders.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@156756 91177308-0d34-0410-b5e6-96231b3b80d8
2012-05-14 08:11:53 +00:00
Bill Wendling
c6db6b6f26 Use ArrayRef instead of an explicit vector type.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@156755 91177308-0d34-0410-b5e6-96231b3b80d8
2012-05-14 07:53:40 +00:00
Bill Wendling
e9a73bbdd7 Add blurb about Julia.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@156754 91177308-0d34-0410-b5e6-96231b3b80d8
2012-05-14 06:23:51 +00:00
Justin Holewinski
dc23c1463a ReleaseNotes: Add info on PTX back-end
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@156745 91177308-0d34-0410-b5e6-96231b3b80d8
2012-05-13 17:32:35 +00:00
Benjamin Kramer
51b49c5292 Hexagon: Initialize TBB to 0.
Found by valgrind.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@156744 91177308-0d34-0410-b5e6-96231b3b80d8
2012-05-13 15:13:22 +00:00
Jean-Daniel Dupas
23a401290b Fix Xcode case (Upper X, lower c)
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@156743 91177308-0d34-0410-b5e6-96231b3b80d8
2012-05-13 14:36:15 +00:00
Benjamin Kramer
3a2d5653cd ReleaseNotes: Add a note about zero_undef on llvm.cttz/ctlz. Extend x86 section. Add a bullet for dwarf access tables.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@156740 91177308-0d34-0410-b5e6-96231b3b80d8
2012-05-13 13:10:35 +00:00
Benjamin Kramer
f26b4150e8 ReleaseNotes: Add a blurb about llvm-mc -g and move inliner changes into the optimizer sections. Verbosify some bullets.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@156739 91177308-0d34-0410-b5e6-96231b3b80d8
2012-05-13 12:01:16 +00:00
Benjamin Kramer
2fb6801142 ReleaseNotes: Document that LLVM was rewritten in python.
^~~~
                            llvm-build

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@156738 91177308-0d34-0410-b5e6-96231b3b80d8
2012-05-13 11:46:05 +00:00
Benjamin Kramer
5fdfaf5e58 ReleaseNotes: Add bullets for removed targets. Extend the note about llvm-ld removal.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@156737 91177308-0d34-0410-b5e6-96231b3b80d8
2012-05-13 11:28:46 +00:00
Benjamin Kramer
88c8e69847 Outline some clang 3.1 highlights off the top of my head.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@156736 91177308-0d34-0410-b5e6-96231b3b80d8
2012-05-13 10:40:08 +00:00
Benjamin Kramer
abe446c67a Add a link for every project.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@156735 91177308-0d34-0410-b5e6-96231b3b80d8
2012-05-13 10:21:51 +00:00
Bill Wendling
f2f92ba4d4 Add blurb for LLVM D Compiler.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@156733 91177308-0d34-0410-b5e6-96231b3b80d8
2012-05-13 10:00:58 +00:00
Bill Wendling
59a23e334b Add blurbs for pocl and TCE.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@156732 91177308-0d34-0410-b5e6-96231b3b80d8
2012-05-13 09:59:27 +00:00
Bill Wendling
9107105caa Add OSL blurb.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@156731 91177308-0d34-0410-b5e6-96231b3b80d8
2012-05-13 09:55:24 +00:00
Bill Wendling
f8cfe2e26d Add FAUST blurb.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@156730 91177308-0d34-0410-b5e6-96231b3b80d8
2012-05-13 09:52:48 +00:00
Nadav Rotem
4f99e717cf Fix the tool documentation
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@156729 91177308-0d34-0410-b5e6-96231b3b80d8
2012-05-13 05:52:56 +00:00
Gregory Szorc
ca34749904 Document Python bindings in release notes
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@156724 91177308-0d34-0410-b5e6-96231b3b80d8
2012-05-12 21:12:22 +00:00