Commit Graph

50864 Commits

Author SHA1 Message Date
Bill Wendling fc8f54be92 Convert DOUT to DEBUG(errs()...).
llvm-svn: 79758
2009-08-22 20:38:09 +00:00
Bill Wendling cddba739f9 Convert DOUT to DEBUG(errs()...).
llvm-svn: 79756
2009-08-22 20:30:53 +00:00
Bill Wendling 63aa000052 Convert DOUT to DEBUG(errs()...).
llvm-svn: 79755
2009-08-22 20:26:23 +00:00
Bill Wendling 8781b35be5 Convert DOUT to DEBUG(errs()...).
llvm-svn: 79754
2009-08-22 20:25:44 +00:00
Bill Wendling 8d64226efe Convert DOUT to DEBUG(errs()...).
llvm-svn: 79753
2009-08-22 20:23:49 +00:00
Bill Wendling dfcc42fa39 Convert DOUT to DEBUG(errs()...).
llvm-svn: 79752
2009-08-22 20:18:03 +00:00
Bill Wendling fb36316730 Convert DOUT to DEBUG(errs()...).
llvm-svn: 79751
2009-08-22 20:11:17 +00:00
Bill Wendling a2c4594997 Normalize how the 'namespace llvm {' is used in this file.
llvm-svn: 79750
2009-08-22 20:08:44 +00:00
Bill Wendling bde8a4c6c9 Convert DOUT to DEBUG(errs()...).
llvm-svn: 79749
2009-08-22 20:07:03 +00:00
Bill Wendling b447173dc3 Convert DOUT to DEBUG(errs()...).
llvm-svn: 79748
2009-08-22 20:04:03 +00:00
Bill Wendling c3f05e854a Convert DOUT to DEBUG(errs()...).
llvm-svn: 79747
2009-08-22 20:03:00 +00:00
Chris Lattner ca098517a3 prune some redundant #includes.
llvm-svn: 79746
2009-08-22 19:35:08 +00:00
Chris Lattner 8f816e7d68 tweak #includes
llvm-svn: 79744
2009-08-22 19:19:12 +00:00
Devang Patel 0939595711 Record variable debug info at ISel time directly.
llvm-svn: 79742
2009-08-22 17:12:53 +00:00
Anton Korobeynikov f0d31ab7b8 Some dummy cost model for s390x:
- Prefer short-imm instructions over ext-imm, when possible
 - Prefer Z10 instructions over Z9, when possible

This hopefully should fix some dejagnu test fails on solaris

llvm-svn: 79741
2009-08-22 11:46:16 +00:00
Daniel Dunbar d1859474a7 llvm-mc/Mach-O: Improve symbol table support:
- Honor .globl.

 - Set symbol type and section correctly ('nm' now works), and order symbols
   appropriately.

 - Take care to the string table so that the .o matches 'as' exactly (for ease
   of testing).

llvm-svn: 79740
2009-08-22 11:41:10 +00:00
Daniel Dunbar ff3eafd39d llvm-mc/Mach-O: Sketch symbol table support.
- The only .s syntax this honors right now is emitting labels, and some parts
   of the symbol table generation are wrong or faked.

 - This is enough to get nm to report such symbols... incorrectly, but still.

Also, fixed byte emission to extend the previous fragment if possible.

llvm-svn: 79739
2009-08-22 10:13:24 +00:00
Daniel Dunbar db52f9c650 Fix typo.
llvm-svn: 79738
2009-08-22 10:09:17 +00:00
Daniel Dunbar 87671b7fdc Force triple for these tests.
llvm-svn: 79737
2009-08-22 09:45:43 +00:00
Daniel Dunbar 4bca5aef61 llvm-mc: Hopefully fix Mach-O tests on big-endian platforms, force values to be
converted to Python ints if possible.

llvm-svn: 79736
2009-08-22 09:28:33 +00:00
Daniel Dunbar 38728fe481 llvm-mc/Mach-O: Move more logic for writing the Mach-O file into the writer
class, and kill off MCSectionData::FileOffset.

llvm-svn: 79735
2009-08-22 08:28:27 +00:00
Daniel Dunbar fef19ffe3a llvm-mc: Rename / redefine MCFragment::FileOffset to MCFragment::Offset (the
section offset).

llvm-svn: 79734
2009-08-22 08:27:54 +00:00
Daniel Dunbar 6860ac7375 llvm-mc: Clean up some handling of symbol/section association to be more correct
(external was really undefined and there wasn't an explicit representation for
absolute symbols).
 - This still needs some cleanup to how the absolute "pseudo" section is dealt
   with, but I haven't figured out the nicest approach yet.

llvm-svn: 79733
2009-08-22 07:22:36 +00:00
Douglas Gregor 81c0524102 CMake: Don't use copy_if_different for TableGen output, because it does not work with IDE targets
llvm-svn: 79732
2009-08-22 07:00:18 +00:00
Owen Anderson 63010bb65a Reapply r79708 with the appropriate fix for the case that still requires locking.
llvm-svn: 79731
2009-08-22 06:32:36 +00:00
Douglas Gregor cd44daddf6 TOT is 2.7svn for CMake, too
llvm-svn: 79730
2009-08-22 06:30:31 +00:00
Daniel Dunbar eec2d9276d Change SmallString::operator{=,+=} to take a StringRef.
llvm-svn: 79729
2009-08-22 06:06:46 +00:00
Tanya Lattner b1e4babbb1 Regenerate configure for 2.7svn
llvm-svn: 79726
2009-08-22 04:37:30 +00:00
Tanya Lattner 57c5711c6b TOT is now 2.7svn
llvm-svn: 79725
2009-08-22 04:33:54 +00:00
Chris Lattner 56d60eaa61 revert r79708 + r79711
llvm-svn: 79720
2009-08-22 04:07:34 +00:00
Eli Friedman 682d8c1881 Make x86 test actually test x86 code generation. Fix the
construct on ARM, which was breaking by coincidence, and add a similar 
testcase for ARM.

llvm-svn: 79719
2009-08-22 03:13:10 +00:00
Bob Wilson abd97fe1b1 Add new intrinsics for Neon vldN_lane and vstN_lane operations.
llvm-svn: 79716
2009-08-22 02:28:46 +00:00
Edward O'Callaghan a16e4b7380 Note down a few bits and bobs off the top of my head for ReleaseNotes-2.6.html
llvm-svn: 79715
2009-08-22 02:17:22 +00:00
Jim Grosbach 8a2cfcba0c Add basic information about SJLJ EH
llvm-svn: 79714
2009-08-22 01:42:39 +00:00
Chris Lattner f09250f1b1 rename test, make more specific.
llvm-svn: 79712
2009-08-22 00:44:24 +00:00
Eric Christopher 677c2287da Actually remove unused static. Previous commit removed trailing
whitespace.

llvm-svn: 79711
2009-08-22 00:41:47 +00:00
Eric Christopher dfda92b76e Remove unused static.
llvm-svn: 79710
2009-08-22 00:40:45 +00:00
Owen Anderson 8e2456c254 Ease contention on this lock by noticing that all writes to the VTs array will
be of (dynamically) constant values, so races on it are immaterial.  We just need
to ensure that at least one write has completed before return the pointer into it.

With this change, parllc exhibits essentially no overhead on 403.gcc.

llvm-svn: 79708
2009-08-22 00:29:12 +00:00
Anton Korobeynikov 48e4a6c739 Add missing RUN line
llvm-svn: 79707
2009-08-22 00:28:50 +00:00
Anton Korobeynikov 5f47ecb918 Reduce the test
llvm-svn: 79703
2009-08-22 00:18:11 +00:00
Bob Wilson 616335f6c1 Use CHECK-NEXT to make sure we're only getting one copy of each shuffle
instruction.

llvm-svn: 79702
2009-08-22 00:13:23 +00:00
Eric Christopher c8f625b1eb Make unit-at-a-time on by default to match the behavior of llvm-gcc.
llvm-svn: 79698
2009-08-21 23:30:30 +00:00
Daniel Dunbar 67dfb1de23 llvm-mc: Improve handling of implicit alignment for magic section directives
(e.g., .objc_message_refs).
 - Just emit a .align when we see the directive; this isn't exactly what 'as'
   does but in practice it should be ok, at least for now. See FIXME.

llvm-svn: 79697
2009-08-21 23:30:15 +00:00
Eric Christopher e64061f675 Kill trailing whitespace.
llvm-svn: 79696
2009-08-21 23:29:40 +00:00
Chris Lattner a7668ff636 Revert r79563
llvm-svn: 79691
2009-08-21 23:12:47 +00:00
Chris Lattner 773416e062 revert r79562 + r79563
llvm-svn: 79690
2009-08-21 23:12:15 +00:00
Daniel Dunbar c906d17973 Make MSVC happy.
llvm-svn: 79689
2009-08-21 23:11:36 +00:00
Anton Korobeynikov 876955cbb0 Fix typo.
llvm-svn: 79688
2009-08-21 23:09:47 +00:00
Chris Lattner f407dbbb1a revert r79631
llvm-svn: 79686
2009-08-21 23:08:45 +00:00
Chris Lattner 6af22f02ef revert 79631
llvm-svn: 79685
2009-08-21 23:08:09 +00:00
Daniel Dunbar b1068e4fe3 llvm-mc/Mach-O: Support .o emission for .org and .align.
llvm-svn: 79684
2009-08-21 23:07:38 +00:00
Daniel Dunbar 4abcccb965 llvm-mc: In a .fill directive, still honor .align even if invalid maximum bytes
count is given (this matches 'as').

llvm-svn: 79683
2009-08-21 23:01:53 +00:00
Anton Korobeynikov 13e8c7ef20 Implement APInt <-> APFloat conversion for IEEE 128-bit floats.
This fixes PR2555

llvm-svn: 79677
2009-08-21 22:10:30 +00:00
Bob Wilson ceffeb6abd Rename ARM "lane_cst" operands to "nohash_imm" since they are used for
several things other than Neon vector lane numbers.  For inline assembly
operands with a "c" print code, check that they really are immediates.

llvm-svn: 79676
2009-08-21 21:58:55 +00:00
Reid Kleckner 48ca915be9 Fix a bug where the DWARF emitter in the JIT was not initializing alignment
bytes.  libgcc doesn't seem to mind, but if you pass this DWARF to GDB, it
doesn't like it.  

Also make the JIT memory manager to initialize it's memory to garbage in debug
mode, so that it's easier to find bugs like these in the future.

llvm-svn: 79674
2009-08-21 21:03:57 +00:00
Bob Wilson a70623102e Match VTRN, VZIP, and VUZP shuffles. Restore the tests for these operations,
now using shuffles instead of intrinsics.

llvm-svn: 79673
2009-08-21 20:54:19 +00:00
Anton Korobeynikov f31a44ec01 Add fcopysign instructions
llvm-svn: 79664
2009-08-21 20:02:37 +00:00
Owen Anderson 2dd877d12a Try again at privatizing the layout info map, with a rewritten patch.
This preserves the existing behavior much more closely than my previous attempt.

llvm-svn: 79663
2009-08-21 19:59:12 +00:00
Anton Korobeynikov 47398930e4 Expand few nodes until someone will be crazy enough to implement them natively :)
llvm-svn: 79659
2009-08-21 18:52:42 +00:00
Anton Korobeynikov cb7444342b Typo :(
llvm-svn: 79657
2009-08-21 18:41:02 +00:00
Anton Korobeynikov 81be4b345a Correct instruction names for subtract-with-borrow
llvm-svn: 79656
2009-08-21 18:37:28 +00:00
Daniel Dunbar 4ef7fb9530 llvm-mc/Mach-O: Support byte and fill value emission.
llvm-svn: 79652
2009-08-21 18:29:01 +00:00
Dan Gohman c0b967dfb4 Don't assume that the operand of an inttoptr is an pointer-sized integer.
llvm-svn: 79651
2009-08-21 18:27:26 +00:00
Bill Wendling dff54eff8e Fix typo. Should check both values of RangeUse for 0. Patch by Marius Wachtler.
llvm-svn: 79649
2009-08-21 18:16:06 +00:00
Anton Korobeynikov a39f96c6ed Handle 'r' inline asm constraint
llvm-svn: 79648
2009-08-21 18:15:41 +00:00
Bob Wilson d1077fbab0 Fix a comment.
llvm-svn: 79643
2009-08-21 17:41:48 +00:00
Duncan Sands 08b437d600 Fix a problem noticed by gcc-4.4:
warning: comparison is always true due to limited range of data type.

llvm-svn: 79642
2009-08-21 17:16:10 +00:00
Dan Gohman 23e62c532c Change getelementptr folding to use APInt instead of uint64_t for
offset computations. This fixes a truncation bug on targets that
don't have 64-bit pointers.

llvm-svn: 79639
2009-08-21 16:52:54 +00:00
Bob Wilson f73af72d30 Add some tests for vext.16 and vext.32.
llvm-svn: 79638
2009-08-21 16:35:24 +00:00
Daniel Dunbar 2f0e8f55f5 Fix -Asserts warning.
llvm-svn: 79636
2009-08-21 16:17:36 +00:00
Daniel Dunbar 8e5edd81bb llvm-mc: Accept .fill size of 8.
llvm-svn: 79635
2009-08-21 15:43:35 +00:00
Anton Korobeynikov 7950510b29 Fix a typo
llvm-svn: 79634
2009-08-21 15:41:56 +00:00
Andreas Neustifter 3fac9a4fc5 Removed profiling test, lli not available on all platforms.
llvm-svn: 79633
2009-08-21 15:27:35 +00:00
Sanjiv Gupta 9ae3bcb79e Add a pass to do call graph analyis to overlay the autos and frame sections of
leaf functions. This pass will be extended to color other nodes of the call tree 
as well in future.

llvm-svn: 79631
2009-08-21 15:22:33 +00:00
Benjamin Kramer 37fd02c5a1 Fix build on platforms where stdint.h is not implicitly included in the standard headers.
llvm-svn: 79629
2009-08-21 13:59:49 +00:00
Anton Korobeynikov eaaca496c5 More cpp backend fixes. Now for FP stuff.
llvm-svn: 79626
2009-08-21 12:50:54 +00:00
Anton Korobeynikov 232b19c3d5 Fix some typos and use type-based isel for VZIP/VUZP/VTRN
llvm-svn: 79625
2009-08-21 12:41:42 +00:00
Anton Korobeynikov 9a232f46a8 Add lowering of ARM 4-element shuffles to multiple instructios via perfectshuffle-generated table.
llvm-svn: 79624
2009-08-21 12:41:24 +00:00
Anton Korobeynikov 84e24388cd Add simple cost model to perfect shuffle. Currently we're doing just greedy search for cost instead of (proper) dynamic programming approach.
llvm-svn: 79623
2009-08-21 12:41:03 +00:00
Anton Korobeynikov ce3ff1be8a Add nodes & dummy matchers for some v{zip,uzp,trn} instructions
llvm-svn: 79622
2009-08-21 12:40:50 +00:00
Anton Korobeynikov e3046618de Expand EXTRACT_SUBVECTOR
llvm-svn: 79621
2009-08-21 12:40:35 +00:00
Anton Korobeynikov 38f284f2ae Provide vext.{16,32}
llvm-svn: 79620
2009-08-21 12:40:21 +00:00
Anton Korobeynikov c32e99e3ed Use masks not nodes for vector shuffle predicates. Provide set of 'legal' masks, so legalizer won't infinite cycle
llvm-svn: 79619
2009-08-21 12:40:07 +00:00
Anton Korobeynikov b539e06f28 Whitespace cleanup
llvm-svn: 79618
2009-08-21 12:39:38 +00:00
Benjamin Kramer c20529945a Update CMakeLists.
llvm-svn: 79617
2009-08-21 11:28:56 +00:00
Richard Pennington 9e0c4f50ec bug 4530: Make debug information static to it is preservered during bitcode linking.
llvm-svn: 79616
2009-08-21 11:10:31 +00:00
Andreas Neustifter f715778de9 Added tests for Profiling Infrastructure.
llvm-svn: 79615
2009-08-21 09:36:28 +00:00
Bill Wendling 2315a68054 Make for 32-bit only.
llvm-svn: 79614
2009-08-21 09:29:26 +00:00
Daniel Dunbar 3016db39dd llvm-mc: Start MCAssembler and MCMachOStreamer.
- Together these form the (Mach-O) back end of the assembler.

 - MCAssembler is the actual assembler backend, which is designed to have a
   reasonable API. This will eventually grow to support multiple object file
   implementations, but for now its Mach-O/i386 only.

 - MCMachOStreamer adapts the MCStreamer "actions" API to the MCAssembler API,
   e.g. converting the various directives into fragments, managing state like
   the current section, and so on.

 - llvm-mc will use the new backend via '-filetype=obj', which may eventually
   be, but is not yet, since I hear that people like assemblers which actually
   assemble.

 - The only thing that works at the moment is changing sections. For the time
   being I have a Python Mach-O dumping tool in test/scripts so this stuff can
   be easily tested, eventually I expect to replace this with a real LLVM tool.

 - More doxyments to come.

I assume that since this stuff doesn't touch any of the things which are part of
2.6 that it is ok to put this in not so long before the freeze, but if someone
objects let me know, I can pull it.

llvm-svn: 79612
2009-08-21 09:11:24 +00:00
Daniel Dunbar 9df5f33818 llvm-mc: Various section parsing fixes.
- Add missing flags for various Objective-C sections.

 - Fix names for [non_]lazy_symbol_pointer (these are misspelled in the manual).

 - .symbol_stub does not have the self modifying code flag set (this appears to
   be wrong in the manual?).

 - Add implicit alignment values; not yet used.

Also, call MCStreamer::Finish at the end of a successful parse.

llvm-svn: 79611
2009-08-21 08:34:18 +00:00
Bill Wendling 84d3389d7d Probably should emit bitcode instead of text.
llvm-svn: 79607
2009-08-21 08:02:19 +00:00
Daniel Dunbar ad8b653f93 Don't install llvm-mc by default.
llvm-svn: 79604
2009-08-21 07:28:33 +00:00
Bill Wendling 64965aafe7 Remove #include <iostream>.
llvm-svn: 79603
2009-08-21 06:52:44 +00:00
Erick Tryzelaar 6096409238 Clean up the APInt function getDigit.
llvm-svn: 79602
2009-08-21 06:48:37 +00:00
Bill Wendling ef793ccbdc Correct for recent assert change.
llvm-svn: 79601
2009-08-21 06:35:41 +00:00
Bill Wendling 19e4d6b33c Testcase for r79597.
llvm-svn: 79598
2009-08-21 06:12:30 +00:00
Eric Christopher 43a1decc8c Update error messages for '+'. Fix grammar and make the two
negative checks resemble each other.

llvm-svn: 79595
2009-08-21 04:10:31 +00:00
Eric Christopher 820256bc99 Fix trailing whitespace and 80-col violation.
llvm-svn: 79594
2009-08-21 04:06:45 +00:00
Erick Tryzelaar dadb1571b7 Fix bug with APInt::getBitsNeeded with for base 10 numbers 0-9.
llvm-svn: 79593
2009-08-21 03:15:28 +00:00
Erick Tryzelaar 1264bcb4de Allow '+' to appear in APInt strings, and add more unit tests.
llvm-svn: 79592
2009-08-21 03:15:14 +00:00