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

64864 Commits

Author SHA1 Message Date
Dan Gohman
2f0d88bcbe Add an #include of raw_ostream.h. Previously, this only compiled
because it was using Twine.h's declaration of operator<<(const Twine &).

llvm-svn: 114141
2010-09-17 00:33:43 +00:00
Bill Wendling
d8c305452a Add "pointer to x86mmx" type to the intrinsics.
llvm-svn: 114140
2010-09-17 00:33:03 +00:00
Oscar Fuentes
7099ae0835 Direct CMake users to the right place for up-to-date info about using
LLVM libraries.

llvm-svn: 114139
2010-09-17 00:30:52 +00:00
Owen Anderson
c71f165f28 Allow the PassRegistry mutex to be lazily initialized, and clean up the global namespace at the same time.
llvm-svn: 114131
2010-09-16 23:44:50 +00:00
Owen Anderson
56bc6a9391 Do not expose the locking for the PassRegistry in the header. Be careful to
synchronize any method that might lazily initialize the pImpl.

llvm-svn: 114130
2010-09-16 23:32:35 +00:00
Benjamin Kramer
c8808012f9 Update CMake build.
llvm-svn: 114128
2010-09-16 23:06:18 +00:00
Dan Gohman
54fa09d403 Rename a variable to avoid a declaration conflict.
llvm-svn: 114126
2010-09-16 22:50:09 +00:00
Dan Gohman
836ce09592 Add a pass which prints out all the memdep dependencies.
llvm-svn: 114121
2010-09-16 22:08:32 +00:00
Devang Patel
99777d1d07 If FE forgot to provide a file name (usually it uses "stdin" as name in such situation) then make one up to ensure that debug info is not malformed.
llvm-svn: 114119
2010-09-16 20:57:49 +00:00
Owen Anderson
3d4644bad9 Revert r114097, adding back in the assertion against replacing an Instruction by itself. Now that CorrelatedValuePropagation is
more careful not to call SimplifyInstructionsInBlock() on an unreachable block, the issue has been fixed at a higher level.  Add
a big warning to SimplifyInstructionsInBlock() to hopefully prevent this in the future.

llvm-svn: 114117
2010-09-16 20:51:41 +00:00
Chris Lattner
73fc5e794d fix rdar://8438816 - unrecognized 'fildq' instruction
llvm-svn: 114116
2010-09-16 20:46:38 +00:00
Rafael Espindola
d542892fc0 Print the address of sections as 0 and create the metadata sections in the
same order as gnu as.

llvm-svn: 114109
2010-09-16 19:46:31 +00:00
Owen Anderson
37a6d67bd6 Add missing RUN line to this test.
llvm-svn: 114106
2010-09-16 18:46:23 +00:00
Owen Anderson
1a679ae773 Use a depth-first iteratation in CorrelatedValuePropagation to avoid wasting time trying
to optimize unreachable blocks.

llvm-svn: 114105
2010-09-16 18:35:07 +00:00
Dale Johannesen
cf9dc14249 When substituting sunkaddrs into indirect arguments an asm, we were
walking the asm arguments once and stashing their Values.  This is
wrong because the same memory location can be in the list twice, and
if the first one has a sunkaddr substituted, the stashed value for the
second one will be wrong (use-after-free).  PR 8154.

llvm-svn: 114104
2010-09-16 18:30:55 +00:00
Owen Anderson
6f3516065f It is possible, under specific circumstances involving ptrtoint ConstantExpr's, for LVI to end up trying to merge
a Constant into a ConstantRange.  Handle this conservatively for now, rather than asserting.  The testcase is
more complex that I would like, but the manifestation of the problem is sensitive to iteration orders and the state of the
LVI cache, and I have not been able to reproduce it with manually constructed or simplified cases.

Fixes PR8162.

llvm-svn: 114103
2010-09-16 18:28:33 +00:00
Jim Grosbach
d7aec03bb1 make this non brain dead...
llvm-svn: 114100
2010-09-16 17:48:08 +00:00
Jim Grosbach
de7a4b08ad Remove unnecessary by-reference return.
llvm-svn: 114099
2010-09-16 17:45:21 +00:00
Jim Grosbach
73f2f39001 MC-ization of the PICLDR pseudo. Next up, adding the other variants
(PICLDRB, et. al.) and PICSTR*

llvm-svn: 114098
2010-09-16 17:43:25 +00:00
Owen Anderson
521e8dfef8 Fix PR8161, in which an unreachable loop causes recursive instruction simplification to try
to replace an instruction with itself.  Add a predicate to the simplifier to prevent this case.

llvm-svn: 114097
2010-09-16 17:42:36 +00:00
Jim Grosbach
9131eb8bf0 Make sure to promote single precision floats to double before extracting them
from the APFloat.

llvm-svn: 114096
2010-09-16 17:37:30 +00:00
Rafael Espindola
fa964e153e Make sure that names like .note.GNU-stack are accepted as valid section names.
llvm-svn: 114091
2010-09-16 17:05:55 +00:00
Rafael Espindola
58aa9e8010 Add support for the .zero directive.
llvm-svn: 114077
2010-09-16 15:03:59 +00:00
Kalle Raiskila
68e2c15954 Change SPU register re-interpretations from OR to COPY_TO_REGCLASS instruction.
This cleans up after the mess r108567 left in the CellSPU backend.
ORCvt-instruction were used to reinterpret registers, and the ORs were then
removed by isMoveInstr(). This patch now removes 350 instrucions of format:
	or $3, $3, $3
(from the 52 testcases in CodeGen/CellSPU). One case of a nonexistant or is
checked for.

Some moves of the form 'ori $., $., 0' and 'ai $., $., 0' still remain.

llvm-svn: 114074
2010-09-16 12:29:33 +00:00
Duncan Sands
c128b42eb8 Add better support for environment portion of triple. Original patch by
Cameron Esfahani, tweaked to use array_lengthof.

llvm-svn: 114073
2010-09-16 08:25:48 +00:00
Duncan Sands
82768f4f13 Some versions of gcc still warn about "ignoring return value ... declared
with attribute warn_unused_result" here - suppress the warning harder.

llvm-svn: 114072
2010-09-16 08:20:49 +00:00
Bob Wilson
622f0a7592 Remove support for "dregpair" operand modifier, now that it is no longer being
used for anything.

llvm-svn: 114067
2010-09-16 04:55:00 +00:00
Bob Wilson
76c730bdbd When expanding ARM pseudo registers, copy the existing predicate operands
instead of using default predicates on the expanded instructions.

llvm-svn: 114066
2010-09-16 04:25:37 +00:00
Jim Grosbach
1c3e1420e1 store MC FP immediates as a double instead of as an APFloat, thus avoiding an
unnecessary dtor for MCOperand.

llvm-svn: 114064
2010-09-16 03:45:21 +00:00
Daniel Dunbar
1eb4c166bf llvm-mc: Teach -as-lex to print more token kinds.
llvm-svn: 114051
2010-09-16 00:42:35 +00:00
Daniel Dunbar
efebe50dd8 build: Add support for a TOOL_ORDER_FILE variable so commands can build with an
order file on Darwin.

llvm-svn: 114050
2010-09-16 00:42:32 +00:00
Bob Wilson
b85d2897d5 Add missing break.
llvm-svn: 114048
2010-09-16 00:31:32 +00:00
Bob Wilson
c63e8b4d2d Change VLDMQ and VSTMQ to be pseudo instructions. They are expanded after
register allocation to VLDMD and VSTMD respectively.  This avoids using the
dregpair operand modifier.

llvm-svn: 114047
2010-09-16 00:31:02 +00:00
Owen Anderson
7321210916 Fix a threaded LLVM bug due the need for operator= on reference counted AttrListImpl's. It might
be possible to implement this very carefully to allow a lock-free implementation while still
avoiding illegal interleavings, but I haven't been able to figure one out.

llvm-svn: 114046
2010-09-16 00:27:35 +00:00
Jakob Stoklund Olesen
e37047a62f Use the value mapping provided by LiveIntervalMap. This simplifies the code a
great deal because we don't have to worry about maintaining SSA form.

Unconditionally copy back to dupli when the register is live out of the split
range, even if the live-out value was defined outside the range. Skipping the
back-copy only makes sense when the live range is going to spill outside the
split range, and we don't know that it will. Besides, this was a hack to avoid
SSA update issues.

Clear up some confusion about the end point of a half-open LiveRange. Methinks
LiveRanges need to be closed so both start and end are included in the range.
The low bits of a SlotIndex are symbolic, so a half-open range doesn't really
make sense. This would be a pervasive change, though.

llvm-svn: 114043
2010-09-16 00:01:36 +00:00
Michael J. Spencer
4b7f13a515 System/Path: Add x86-64 COFF to IdentifyFileType.
llvm-svn: 114037
2010-09-15 23:04:14 +00:00
Owen Anderson
445e4de610 Since PassRegistry is currently a shared global object, it needs locking. While it might intuitively seem
that all the setup of this class currently happens at static initialization time, this misses the fact
that some later events can cause mutation of the PassRegistrationListeners list, and thus cause race issues.

llvm-svn: 114036
2010-09-15 23:03:33 +00:00
Michael J. Spencer
915ffb8284 System/Path: Add isObjectFile().
llvm-svn: 114032
2010-09-15 22:45:45 +00:00
Jim Grosbach
9375a03d98 Add support for the 'lane' modifier on vdup operands
llvm-svn: 114030
2010-09-15 22:13:23 +00:00
Jim Grosbach
75ae6f4ebb add a test of an edge case value for the FP immediate (needs all digits of
precision)

llvm-svn: 114028
2010-09-15 21:52:13 +00:00
Rafael Espindola
8a987c002e Add a InitSections method to the streamer interface.
The ELF implementation now creates text, data and bss to match the gnu as
behavior.

The text streamer still has the old MachO specific behavior since
the testsuite checks that it will error when a directive is given
before a setting the current section for example.

A nice benefit is that -n is not required anymore when producing
ELF files.

llvm-svn: 114027
2010-09-15 21:48:40 +00:00
Jakob Stoklund Olesen
1a38bba871 Remember VLDMQ.
llvm-svn: 114026
2010-09-15 21:40:11 +00:00
Jakob Stoklund Olesen
3896e52f08 Add missing break.
llvm-svn: 114025
2010-09-15 21:40:09 +00:00
Jim Grosbach
90aca3a6bf Teach the MC disassembler to handle vmov.f32 and vmov.f64 immediate to register
moves. Previously, the immediate was printed as the encoded integer value,
which is incorrect.

llvm-svn: 114021
2010-09-15 21:04:54 +00:00
Jim Grosbach
2699e92c0e move getRegisterNumbering() to out of ARMBaseRegisterInfo into the helper
functions in ARMBaseInfo.h so it can be used in the MC library as well.
For anything bigger than this, we may want a means to have a small support
library for shared helper functions like this. Cross that bridge when we
come to it.

llvm-svn: 114016
2010-09-15 20:26:25 +00:00
Eli Friedman
b5aea103fc PR7959: Handle negative scales in GEPs correctly in BasicAA for non-64-bit
targets.

llvm-svn: 114015
2010-09-15 20:08:03 +00:00
Jim Grosbach
c85818a952 simplify getRegisterNumbering(). Remove the unused isSPVFP argument and
merge the common cases.

llvm-svn: 114013
2010-09-15 19:52:17 +00:00
Jim Grosbach
8a4ae35eed Refactor uses of getRegisterNumbering() to not need the isSPVFP argument. Check
if the register is a member of the SPR register class directly instead.

llvm-svn: 114012
2010-09-15 19:44:57 +00:00
Jim Grosbach
c0b045a0ef Reduce dependencies in the ARM MC instruction printer.
llvm-svn: 114009
2010-09-15 19:27:50 +00:00
Jim Grosbach
c74aeaa1c2 Fix spelling typo.
llvm-svn: 114008
2010-09-15 19:26:50 +00:00