Commit Graph

64523 Commits

Author SHA1 Message Date
Bill Wendling 638a098f72 Mark the sse_load_f32 and sse_load_f64 load patterns as having memoperands so
that the memoperands are properly set after DAG building and general mucking
about.

llvm-svn: 113585
2010-09-10 10:34:22 +00:00
Bill Wendling ac0ad0f634 Reword since this may not be a bug but intended behavior.
llvm-svn: 113584
2010-09-10 10:31:11 +00:00
NAKAMURA Takumi 9c8a97ce0a Makefile.rules: LOADABLE_MODULE/Win32: "all" components may be linked
only when ENABLE_SHARED=1.

Loadable module for Win32 requires all symbols resolved for linking.

llvm-svn: 113579
2010-09-10 06:27:02 +00:00
NAKAMURA Takumi 217cadd434 Don't build redundant libLLVMgold.a.
Building archive would be executed due to definition of BUILD_ARCHIVE,
even if BUILD_ARCHIVE = "0".

llvm-svn: 113578
2010-09-10 06:26:57 +00:00
Evan Cheng 1d6aa46cd7 Fix test so it passes on non-Darwin hosts.
llvm-svn: 113577
2010-09-10 06:20:01 +00:00
Bob Wilson 8617234658 Fix merging base-updates for VLDM/VSTM: Before I switched these instructions
to use AddrMode4, there was a count of the registers stored in one of the
operands.  I changed that to just count the operands but forgot to adjust for
the size of D registers.  This was noticed by Evan as a performance problem
but it is a potential correctness bug as well, since it is possible that this
could merge a base update with a non-matching immediate.

llvm-svn: 113576
2010-09-10 05:15:04 +00:00
Evan Cheng bf4070756f Teach if-converter to be more careful with predicating instructions that would
take multiple cycles to decode.
For the current if-converter clients (actually only ARM), the instructions that
are predicated on false are not nops. They would still take machine cycles to
decode. Micro-coded instructions such as LDM / STM can potentially take multiple
cycles to decode. If-converter should take treat them as non-micro-coded
simple instructions.

llvm-svn: 113570
2010-09-10 01:29:16 +00:00
Eric Christopher 712bd0a604 Fix build error.
llvm-svn: 113566
2010-09-10 00:35:09 +00:00
Eric Christopher 860fc9370f Update comments, reorganize some code, rename variables to be
more clear.  No functional change.

llvm-svn: 113565
2010-09-10 00:34:35 +00:00
Eric Christopher 22fd29a94a 64-bit fp loads can come straight out of the constant pool, not as
bad as I'd thought.

llvm-svn: 113561
2010-09-09 23:50:00 +00:00
Dan Gohman 6dbbab6895 Discard metadata produced by LLVM 2.7. The value enumeration it used
is different from what the code now uses in a two ways: NamedMDNodes
were considered Values and included in the numbering, and the
function-local metadata counter wasn't reset between functions.

The later problem breaks lazy deserialization, so instead of trying
to emulate the old numbering, just drop the old metadata. The only
in-tree use case is debug info with LTO, where the QOI loss is
considered acceptable.

llvm-svn: 113557
2010-09-09 23:12:39 +00:00
Daniel Dunbar e5444a88cd llvm-mc: Don't crash when using -n and we see a directive before the initial section.
- This is annoying, because we have to scatter this check everywhere that could emit real data, but I see no better solution.

llvm-svn: 113552
2010-09-09 22:42:59 +00:00
Daniel Dunbar 43325c4a68 llvm-mc: Make sure we exit != 0 if any errors are encountered.
llvm-svn: 113551
2010-09-09 22:42:56 +00:00
Jakob Stoklund Olesen 728941fabc XFAIL test under valgrind. It is not really our problem if sh is leaking.
llvm-svn: 113550
2010-09-09 22:02:13 +00:00
Eric Christopher 4bd7047324 SIToFP and FPToSI conversions work only on fp-reg to fp-reg. Move
some data around and implement a couple of move routines to do this.

llvm-svn: 113546
2010-09-09 21:44:45 +00:00
Dan Gohman f942e96ed5 MDNodes are not Constants.
llvm-svn: 113539
2010-09-09 20:54:24 +00:00
Dan Gohman 0a54da2fce Print invalid metadata references as <badref>, for consistency with
regular value references.

llvm-svn: 113538
2010-09-09 20:53:58 +00:00
Eric Christopher 2cbe0fd956 New "move to fp reg" routine. Use it.
llvm-svn: 113537
2010-09-09 20:49:25 +00:00
Eric Christopher 82b05d7206 "Strike that, reverse it." -- Mr. Wonka.
Truncate when truncating, extend when extending.

llvm-svn: 113536
2010-09-09 20:36:19 +00:00
Owen Anderson 04cf3fd761 What the loop unroller cares about, rather than just not unrolling loops with calls, is
not unrolling loops that contain calls that would be better off getting inlined.  This mostly
comes up when an interleaved devirtualization pass has devirtualized a call which the inliner
will inline on a future pass.  Thus, rather than blocking all loops containing calls, add
a metric for "inline candidate calls" and block loops containing those instead.

llvm-svn: 113535
2010-09-09 20:32:23 +00:00
Eric Christopher 5903c0be2a Add FPTrunc, fix some bugs where I forgot to update the value map.
llvm-svn: 113533
2010-09-09 20:26:31 +00:00
Owen Anderson 6270515918 Revert r113439, which relaxed the requirement that loops containing calls cannot be unrolled. After some discussion,
there seems to be a better way to achieve the same effect.

llvm-svn: 113528
2010-09-09 20:02:23 +00:00
Owen Anderson 11ab204fdc r113526 introduced an unintended change to the loop unrolling threshold. Revert it.
llvm-svn: 113527
2010-09-09 19:11:57 +00:00
Owen Anderson b61b1647e2 Fix typo in code to cap the loop code size reduction calculation.
llvm-svn: 113526
2010-09-09 19:08:59 +00:00
Owen Anderson 62ea1b718c Use code-size reduction metrics to estimate the amount of savings we'll get when we unroll a loop.
Next step is to recalculate the threshold values given this new heuristic.

llvm-svn: 113525
2010-09-09 19:07:31 +00:00
Eric Christopher 6e3eeba4d9 Basic FP->Int, Int->FP conversions.
llvm-svn: 113523
2010-09-09 18:54:59 +00:00
Bruno Cardoso Lopes e8501a468c Add one more pattern to fallback movddup
llvm-svn: 113522
2010-09-09 18:48:34 +00:00
Dan Gohman 1c5be00ec7 Extend the getDependence query with support for PHI translation.
llvm-svn: 113521
2010-09-09 18:37:31 +00:00
Dan Gohman 19d19c525c Add a getPointerOperand() helper function to VAArgInst, for consistency
with LoadInst and StoreInst.

llvm-svn: 113520
2010-09-09 18:32:40 +00:00
Evan Cheng 367a5df8cf For each instruction itinerary class, specify the number of micro-ops each
instruction in the class would be decoded to. Or zero if the number of
uOPs must be determined dynamically.

This will be used to determine the cost-effectiveness of predicating a
micro-coded instruction.

llvm-svn: 113513
2010-09-09 18:18:55 +00:00
Dan Gohman 154cb1437e Fix this comment.
llvm-svn: 113511
2010-09-09 18:04:22 +00:00
Benjamin Kramer 6c3c349b2b MCELF: Write relocation fragments in the right endian.
- This code is gross, but does the job for now.

llvm-svn: 113509
2010-09-09 18:01:29 +00:00
Roman Divacky 3b727f55aa Make ELF OS ABI dependent on the OS from target triple.
llvm-svn: 113508
2010-09-09 17:57:50 +00:00
Daniel Dunbar 4c5301d38e build: Allow subdir Makefiles to provide an alternate location for the SRCDIR
Makefile, which can be used to allow building out of tree sources.

llvm-svn: 113503
2010-09-09 17:38:11 +00:00
Dale Johannesen 0ec303b97b Move remaining MMX instructions from SSE to MMX.
llvm-svn: 113501
2010-09-09 17:13:07 +00:00
Owen Anderson a08318acb2 Refactor code-size reduction estimation methods out of InlineCostAnalyzer and into CodeMetrics. They
don't use any InlineCostAnalyzer state, and are useful for other clients who don't necessarily want to use
all of InlineCostAnalyzer's logic, some of which is fairly inlining-specific.

No intended functionality change.

llvm-svn: 113499
2010-09-09 16:56:42 +00:00
Daniel Dunbar a90e25cc64 MC: Give a (lame) hard error if a .org directive would create an unreasonably
large object file (> 1GB).

llvm-svn: 113494
2010-09-09 16:23:33 +00:00
Daniel Dunbar db0ddaa50b tests: XFAIL a handful of tests on the vg_leak builder, so we can get back to
green.

llvm-svn: 113491
2010-09-09 15:50:19 +00:00
Daniel Dunbar 4026664697 projects: Don't try to build libcxx if one happens to have it checked out into
llvm/projects.

llvm-svn: 113490
2010-09-09 15:49:32 +00:00
Benjamin Kramer 0a96578ac0 Add an elf-dumper utility.
- Output format and some of the code stolen from macho-dump.
- Somewhat incomplete and probably buggy.
- Comes with a very basic test.

llvm-svn: 113488
2010-09-09 15:00:41 +00:00
NAKAMURA Takumi 19e11f1db7 lib/System/Host.cpp: 7bit-ize. Eliminate "TM" and "(R)" in comments.
llvm-svn: 113486
2010-09-09 13:30:48 +00:00
Duncan Sands 78617ea13a Get rid of the last use of -m64 in FrontendC. This solution
of checking for either 4 or 8 is not very satisfactory, but
it would catch the original problem (an alignment of 1).

llvm-svn: 113485
2010-09-09 12:57:29 +00:00
Duncan Sands 11d56c309a Another test that uses -m64. Here too it looks like it can be
removed.  Not that the XTARGET wasn't doing anything since it
does nothing without an accompanying XFAIL.

llvm-svn: 113484
2010-09-09 12:48:04 +00:00
Duncan Sands e194e0c077 On i386, llvm-gcc cannot be assumed to support -m64. Since these
tests pass here (i686-linux and x86-64-linux) without -m64, simply
remove the -m64.

llvm-svn: 113483
2010-09-09 12:43:44 +00:00
Duncan Sands 269f322110 This script is executable.
llvm-svn: 113479
2010-09-09 09:37:54 +00:00
Kalle Raiskila 01cda2d35a Silence compiler warning.
llvm-svn: 113478
2010-09-09 07:30:15 +00:00
Bob Wilson 4adbaf1843 Fix NEON VLD pseudo instruction itineraries that were incorrectly copied from
the VST pseudos.  The VLD/VST scheduling still needs work (see pr6722), but
at least we shouldn't confuse the loads with the stores.

llvm-svn: 113473
2010-09-09 05:40:26 +00:00
Eric Christopher 2ff757d422 Nuke whitespace and fix some indenting.
llvm-svn: 113463
2010-09-09 01:06:51 +00:00
Dale Johannesen 5f4a6f295c Move most MMX instructions (defined as anything that
uses MMX, even if it also uses other things) from InstrSSE
into InstrMMX.  No (intended) functional change.

llvm-svn: 113462
2010-09-09 01:02:39 +00:00
Eric Christopher bd3d121641 Handle 64-bit floating point binops as well.
llvm-svn: 113461
2010-09-09 01:02:03 +00:00