Commit Graph

50825 Commits

Author SHA1 Message Date
Tanya Lattner da94af763b Update the release process some more. Lots of good details now.
llvm-svn: 79488
2009-08-19 23:07:37 +00:00
David Greene 62b666f0b8 Remove an unnecessary include. Now we won't have circular include
problems later on.

llvm-svn: 79487
2009-08-19 23:00:07 +00:00
Owen Anderson d6f7af652e AttrListPtr operations need to be atomic.
llvm-svn: 79486
2009-08-19 22:58:34 +00:00
Dan Gohman c59ba42b0f Fix a bug in the over-index constant folding. When over-indexing an
array member of a struct, it's possible to land in an arbitrary position
inside that struct, such that attempting to find further getelementptr
indices will fail. In such cases, folding cannot be done.

llvm-svn: 79485
2009-08-19 22:46:59 +00:00
Dale Johannesen 1d764f61ef Handle 'a' modifier in X86 asms. PR 4742.
llvm-svn: 79484
2009-08-19 22:44:41 +00:00
Reid Kleckner d72b091840 Fixed error in CPPBackend from a contextification API change.
llvm-svn: 79483
2009-08-19 22:38:37 +00:00
Daniel Dunbar ca66226c31 Switch IRBuilder to using Twine references for names.
llvm-svn: 79482
2009-08-19 22:34:21 +00:00
David Greene 15aafbbfa5 Add missing forward declaration.
llvm-svn: 79481
2009-08-19 22:19:44 +00:00
David Greene 8230a93ae2 Add missing includes.
llvm-svn: 79480
2009-08-19 22:16:11 +00:00
David Greene 2806a1e528 Add missing includes.
llvm-svn: 79479
2009-08-19 22:08:26 +00:00
David Greene ba540eb492 Add missing includes.
llvm-svn: 79478
2009-08-19 22:05:21 +00:00
Nicolas Geoffray 43cce2294c Add a REQUIRES_FRAME_POINTER option to disable the frame pointer
elimination optimization on the LLVM code base.

llvm-svn: 79477
2009-08-19 22:04:44 +00:00
David Greene 40a0fbc1d0 Add missing includes.
llvm-svn: 79476
2009-08-19 22:02:07 +00:00
David Greene 8704780390 Add missing includes.
llvm-svn: 79475
2009-08-19 21:59:18 +00:00
David Greene a5be1b174b Add missing includes.
llvm-svn: 79474
2009-08-19 21:55:33 +00:00
David Greene 829b3e8b14 Add missing includes.
llvm-svn: 79473
2009-08-19 21:52:55 +00:00
Owen Anderson a83e868078 Get rid of a helgrind warning. If this is _actually_ a performance problem,
we can find a way to cache the answer that isn't racy.

llvm-svn: 79472
2009-08-19 21:48:34 +00:00
David Greene ddf20023d3 Add missing includes.
llvm-svn: 79469
2009-08-19 21:22:18 +00:00
David Greene 23a6b3b2d2 Add missing includes.
llvm-svn: 79468
2009-08-19 21:19:41 +00:00
David Greene 7b1a6671f8 Add missing includes.
llvm-svn: 79467
2009-08-19 21:17:28 +00:00
Daniel Dunbar 0e04394d97 Build runtime libraries by default.
llvm-svn: 79465
2009-08-19 21:09:45 +00:00
David Greene d1a08de1f6 Add missing header.
llvm-svn: 79463
2009-08-19 20:52:54 +00:00
Eli Friedman 28c7bbf515 Add triple parsing support for TCE.
llvm-svn: 79461
2009-08-19 20:46:03 +00:00
Dan Gohman 081e2f955a Unbreak GetBufferSize() on uninitialized streams. This fixes a problem
that led to errs() getting made buffered.

llvm-svn: 79458
2009-08-19 20:27:57 +00:00
Daniel Dunbar 8b0b11582d Switch to SmallString::str from SmallString::c_str, and remove
SmallString::c_str.

llvm-svn: 79456
2009-08-19 20:07:03 +00:00
Daniel Dunbar faea97193c Add min and max tests.
llvm-svn: 79454
2009-08-19 19:58:19 +00:00
Daniel Dunbar 03d4b9eac4 Add SmallString::str (which returns a StringRef); this is more efficient than
c_str().

llvm-svn: 79453
2009-08-19 19:57:55 +00:00
Benjamin Kramer 902ccf22b4 Remove SmallString::append_*int* unit tests.
llvm-svn: 79451
2009-08-19 19:41:05 +00:00
Daniel Dunbar 339d0cbdd1 Remove SmallString::append_*int* methods; how many copies of int -> str
conversion code do we really need?
 - S.append_uint(N) can be replaced with 'raw_svector_ostream(S) << N' which is
   somewhat slower due to the extra set up cost, but still plenty fast
   (especially if the svector set up cost can be amortized).

llvm-svn: 79450
2009-08-19 19:28:18 +00:00
Daniel Dunbar 948f82b8e4 Change ValueSymbolTable to use raw_svector_ostream for string concatenation.
llvm-svn: 79449
2009-08-19 19:22:52 +00:00
Bill Wendling 6c528bc7ae Make this test platform neutral.
llvm-svn: 79447
2009-08-19 18:51:45 +00:00
Daniel Dunbar e813cbaa21 Change raw_svector_ostream to reserve the input buffer if necessary, Ted was
right.
 - This class turns out to be much more convenient to use if we do this; clients
   can make sure the buffer is always big enough if they care (since our current
   idiom tends to be to use a SmallString<256> for the input to this we should
   generally be avoiding an unnecessary malloc).

Also, add a convenience raw_svector_ostream::str method which flushes the buffer
and returns a StringRef for the vector contents.

llvm-svn: 79446
2009-08-19 18:40:58 +00:00
Daniel Dunbar 45e5670ede Fix typo
llvm-svn: 79445
2009-08-19 18:35:54 +00:00
Dan Gohman de255fc8f6 Remove temporary testing code.
llvm-svn: 79443
2009-08-19 18:27:08 +00:00
Dan Gohman 915302c605 Make SROA and PredicateSimplifier cope if TargetData is not
available. This is very conservative for now.

llvm-svn: 79442
2009-08-19 18:22:18 +00:00
Dan Gohman 5d5bc6d000 Use hasDefinitiveInitializer() instead of testing the same thing
by hand, and fix a few places that were using hasInitializer() that
appear to depend on the initializer value.

llvm-svn: 79441
2009-08-19 18:20:44 +00:00
Dan Gohman 81ce842ecf Canonicalize indices in a constantexpr GEP. If Indices exceed the
static extents of the static array type, it causes GlobalOpt and
other passes to be more conservative. This canonicalization also
allows the constant folder to add "inbounds" to GEPs.

llvm-svn: 79440
2009-08-19 18:18:36 +00:00
Dan Gohman ac33a9061d Add an x86 peep that narrows TEST instructions to forms that use
a smaller encoding. These kinds of patterns are very frequent in
sqlite3, for example.

llvm-svn: 79439
2009-08-19 18:16:17 +00:00
Daniel Dunbar ea579e3d29 Switch Twine::str() to use toVector(), which is now efficient.
llvm-svn: 79437
2009-08-19 18:09:47 +00:00
David Goodwin a7c2dfbca1 Update Cortex-A8 instruction itineraries for integer instructions.
llvm-svn: 79436
2009-08-19 18:00:44 +00:00
Owen Anderson fe7bbc92e1 Add a first stab at describing LLVMContext.
llvm-svn: 79435
2009-08-19 17:58:52 +00:00
Daniel Dunbar b090bf4626 Switch raw_svector_ostream to use the vector as the ostream buffer.
- This avoids unnecessary malloc/free overhead in the common case, and
   unnecessary copying from the ostream buffer into the output vector.

llvm-svn: 79434
2009-08-19 17:54:29 +00:00
Daniel Dunbar 825e955e40 Add SmallVector::{capacity,set_size}.
- These allow clients to make use of the extra elements in the vector which
   have already been allocated, without requiring them to be value initialized.

llvm-svn: 79433
2009-08-19 17:48:28 +00:00
Erick Tryzelaar a5fbf27bc8 BasicBlock::getContext can no longer return a NULL so update the doc.
llvm-svn: 79432
2009-08-19 17:40:05 +00:00
Erick Tryzelaar be86e9fd9a Update the ocaml docs to work with LLVMContext.
llvm-svn: 79431
2009-08-19 17:32:38 +00:00
Erick Tryzelaar 8ce532bfea Convert the rest of the ocaml types and functions to use context.
llvm-svn: 79430
2009-08-19 17:32:24 +00:00
Owen Anderson 6d549d6450 Reapply my less-lock-contention-in-leak-detector patch, now with new files
actually added.

llvm-svn: 79429
2009-08-19 17:07:46 +00:00
Bob Wilson 32cd8550ce Add support for Neon VEXT (vector extract) shuffles.
This is derived from a patch by Anton Korzh.  I modified it to recognize
the VEXT shuffles during legalization and lower them to a target-specific
DAG node.

llvm-svn: 79428
2009-08-19 17:03:43 +00:00
Daniel Dunbar 5c947db79c Fix a commento.
llvm-svn: 79427
2009-08-19 16:25:53 +00:00
Daniel Dunbar 465de3e2be Speculatively revert r79375, which may be breaking bootstrap, although in a
rather obscure way (the other candidate is r79377).

llvm-svn: 79426
2009-08-19 16:25:25 +00:00
David Goodwin 9b48cd4899 Use the schedule itinerary operand use/def cycle information to adjust dependence edge latency for post-RA scheduling.
llvm-svn: 79425
2009-08-19 16:08:58 +00:00
Sandeep Patel f2c313a1f9 Test commit access with a first act of vanity.
llvm-svn: 79424
2009-08-19 15:07:40 +00:00
Duncan Sands a21fe10c06 Fix cmake build on non-x86 targets. Patch by
Xerxes Rånby.

llvm-svn: 79419
2009-08-19 12:41:52 +00:00
Benjamin Kramer 47f6943a95 Proper MSVC build fix (and remove my hack again). Patch by Yonggang Luo.
llvm-svn: 79418
2009-08-19 12:38:51 +00:00
Benjamin Kramer 9d908589d3 Add a hack to unbreak MSVC builds. str(n)casecmp are POSIX functions and aren't available on windows (mingw defines them though).
llvm-svn: 79417
2009-08-19 12:16:17 +00:00
Eli Friedman 1e008c173a PR4737: Fix a nasty bug in load narrowing with non-power-of-two types.
llvm-svn: 79415
2009-08-19 08:46:10 +00:00
Erick Tryzelaar d552be457a Add the ocaml binding to LLVMBuildAggregateRet.
llvm-svn: 79414
2009-08-19 08:37:00 +00:00
Erick Tryzelaar fd529d7dc4 Expose some extra functions to llvm-c
llvm-svn: 79413
2009-08-19 08:36:49 +00:00
Nick Lewycky cbfe9b195c Fix up PHI nodes correctly in the presence of unreachable BBs, part two. Also
delete a newed pointer, and improve readability a little bit.

llvm-svn: 79411
2009-08-19 07:16:57 +00:00
Erick Tryzelaar 5c35b5cf91 Allow passing around LLVMContext in ocaml.
llvm-svn: 79410
2009-08-19 06:40:29 +00:00
Chris Lattner 79cbb75e69 ExuberantAsm is no more.
llvm-svn: 79409
2009-08-19 06:36:30 +00:00
Chris Lattner 78b23b0e3f fix asmstreaming of 2/4 byte elements with pow-2 alignments.
llvm-svn: 79408
2009-08-19 06:35:36 +00:00
Nick Lewycky 9ddc52d5b8 Be more careful when modifying PHI nodes. Patch by Andre Tavares.
llvm-svn: 79407
2009-08-19 06:24:33 +00:00
Chris Lattner 37b7234a75 switch asmprinter to emit alignments through OutStreamer.
llvm-svn: 79406
2009-08-19 06:12:02 +00:00
Chris Lattner 4b7dadb76e eliminate AsmPrinter::SwitchToSection and just have clients
talk to the MCStreamer directly instead.

llvm-svn: 79405
2009-08-19 05:49:37 +00:00
Andreas Neustifter 21e66abd40 Broke line before break.
llvm-svn: 79404
2009-08-19 05:44:39 +00:00
Daniel Dunbar acf0b258de Make a SmallVector size more reasonable.
llvm-svn: 79403
2009-08-19 05:08:06 +00:00
Erick Tryzelaar 9eb4a5f418 Fix gcc-4.4/fedora 11 by adding a sentinel value to SimpleValueType.
gcc-4.4 was optimizing away comparisons against SimpleValueType when
it was compared to a value larger than the largest value in the enum.
This patch works around it by adding one extra item to the enum so
that these tests will now be valid.

llvm-svn: 79401
2009-08-19 02:53:07 +00:00
Lang Hames 11732add1e Added an option to have the PBQP allocator attempt coalescing during allocation.
llvm-svn: 79397
2009-08-19 01:36:14 +00:00
Owen Anderson 077df2c4ce Revert my last patch temporarily.
llvm-svn: 79388
2009-08-19 00:52:13 +00:00
Owen Anderson 3042539089 Privatize part of the leak detector mechanism, which turned out to be heavily contended
when trying to run opt in parallel.  This lets parallel opt crunch 403.gcc in about a third
of the time.

llvm-svn: 79387
2009-08-19 00:37:02 +00:00
Daniel Dunbar 0cf168635e raw_ostream: Simplify write(unsigned char) to match write(const char*, unsigned).
llvm-svn: 79386
2009-08-19 00:23:39 +00:00
Daniel Dunbar 835da36ee9 raw_ostream: Remove pointless redefinitions of tell().
- The base class implementation is correct.

llvm-svn: 79385
2009-08-19 00:14:25 +00:00
Dan Gohman dea2358c68 Fix SimplifyLibcalls and ValueTracking to check mayBeOverridden
before performing optimizations based on constant string values.

llvm-svn: 79384
2009-08-19 00:11:12 +00:00
Dan Gohman 2fa67c9f70 Be tidy and use a break to exit from a switch block rather than
just falling through the end.

llvm-svn: 79383
2009-08-18 23:52:48 +00:00
Daniel Dunbar 317a6cd010 raw_ostream: Add the capability for subclasses to manually install an external
buffer.

llvm-svn: 79382
2009-08-18 23:42:36 +00:00
Dan Gohman 4906f73a9f Legalize the shift amount operand of SRL_PARTS, SHL_PARTS, and
SRA_PARTS, as is done for SRL, SHL, and SRA.

llvm-svn: 79380
2009-08-18 23:36:17 +00:00
Daniel Dunbar 17a6fd2299 raw_ostream: Reduce FormattedStream's reliance on raw_ostream's implementation.
- Kill off begin(), end(), and iterator. It isn't clear what these
   mean. Instead provide getBufferStart(), which can be used with
   GetNumBytesInBuffer to the same effect.

 - Update ComputeColumn to take arguments for the buffer to scan, this
   simplifies the implementation of write_impl substantially.

 - This should also fix possible problems with the scanning pointer pointing
   outside of the current raw_ostream buffer.

llvm-svn: 79379
2009-08-18 23:36:04 +00:00
Lang Hames 305be0e603 Changes DOUT references in the PBQP allocator to use DEBUG(errs() ...)
llvm-svn: 79378
2009-08-18 23:34:50 +00:00
Eric Christopher 9fe912de5f Implement sse4.2 string/text processing instructions:
Add patterns and instruction encoding information.
Add custom lowering to deal with hardwired return register of
uncertain type (xmm0).

llvm-svn: 79377
2009-08-18 22:50:32 +00:00
Tanya Lattner 7fb1616d60 First steps to document new release plan.
llvm-svn: 79376
2009-08-18 22:33:28 +00:00
Daniel Dunbar bc96fe7246 Speed up raw_ostream::<<(unsigned long long) for 32-bit systems by doing most
div/mods in 32-bits.

llvm-svn: 79375
2009-08-18 22:24:00 +00:00
Jakob Stoklund Olesen 36d747745e Simplify RegScavenger::FindUnusedReg.
- Drop the Candidates argument and fix all callers. Now that RegScavenger
  tracks available registers accurately, there is no need to restict the
  search.
- Make sure that no aliases of the found register are in use. This was a potential bug.

llvm-svn: 79369
2009-08-18 21:14:54 +00:00
Richard Osborne 2349fb4d45 Add support for mergeable sections back into the XCore backend.
llvm-svn: 79368
2009-08-18 21:14:31 +00:00
Dan Gohman 23f90c1d3a Fix a bug in raw_ostream::write(char) introduced by the change to
allow underlying stream classes to decline buffering. After
calling SetBuffered(), re-check whether the stream is Unbuffered
in order to handle the case where the underlying stream has
declined buffering.

llvm-svn: 79362
2009-08-18 20:09:59 +00:00
Daniel Dunbar d882f4b6ff Revert r78924, disabling buffering defeats all the fast paths in raw_ostream.
llvm-svn: 79361
2009-08-18 20:07:36 +00:00
Daniel Dunbar 959323a260 Improve Triple to recognize the OS in i386-mingw32.
llvm-svn: 79359
2009-08-18 19:26:55 +00:00
David Greene 60eb473ac9 Make various changes suggested by Chris.
llvm-svn: 79358
2009-08-18 19:22:55 +00:00
Misha Brukman f87bb00561 Surrounded variable in <tt> tags for consistency.
llvm-svn: 79357
2009-08-18 19:18:40 +00:00
Daniel Dunbar 3828a99ba6 Fix pasto in StringRef::count(char)
llvm-svn: 79356
2009-08-18 18:34:22 +00:00
Owen Anderson e8f2185a2f Privatize the ValueHandle global map. Because this is used so heavily throughout the code base, locking all accesses to
it is not practical performance-wise.

llvm-svn: 79355
2009-08-18 18:28:58 +00:00
Daniel Dunbar 5736db6527 Add StringRef::count({char,StringRef})
llvm-svn: 79354
2009-08-18 18:26:35 +00:00
Erick Tryzelaar a9680df669 Fix an uninitialized value warning in APFloat.
llvm-svn: 79353
2009-08-18 18:20:37 +00:00
Eric Christopher d604b256d5 Add CXXFLAGS to the Link lines as well in case someone used those instead
of LDFLAGS.

llvm-svn: 79352
2009-08-18 18:07:35 +00:00
Richard Osborne 934d61648b Put data with relocations in the same sections as data without relocations.
llvm-svn: 79351
2009-08-18 17:58:17 +00:00
Daniel Dunbar d7f3433789 Attempt to normalize test results.
llvm-svn: 79350
2009-08-18 17:38:27 +00:00
Dan Gohman b85ad63727 Make this test less sensitive to assembler differences.
llvm-svn: 79348
2009-08-18 17:19:46 +00:00
Chris Lattner 3ac8dc776a alphabeticalize
llvm-svn: 79347
2009-08-18 17:04:44 +00:00
Chris Lattner 03ded465d2 fix COFF targets (mingw/cygwin) to provide ehframe and LSDA sections
llvm-svn: 79346
2009-08-18 16:56:17 +00:00
Chris Lattner 8b0e164aa6 force a triple so this passes on darwin
llvm-svn: 79345
2009-08-18 16:55:45 +00:00
Dan Gohman bf2a9aedca Generalize ScalarEvolution to be able to analyze GEPs when
TargetData is not present. It still uses TargetData when available.
This generalization also fixed some limitations in the TargetData
case; the attached testcase covers this.

llvm-svn: 79344
2009-08-18 16:46:41 +00:00
Chris Lattner f446070b62 null streamer needs to maintain the current section as well.
llvm-svn: 79343
2009-08-18 16:46:29 +00:00
Oscar Fuentes 6d61f558ac CMake: LLVM_ENABLE_PIC now defaults to ON, as in `configure'. This is
required on some platforms for building shared libraries that link to
the LLVM libraries.

llvm-svn: 79339
2009-08-18 15:29:35 +00:00
Dan Gohman a41fa35992 Make tail merging handle blocks with repeated predecessors correctly, and
remove RemoveDuplicateSuccessor, as it is no longer necessary, and because
it breaks assumptions made in
MachineBasicBlock::isOnlyReachableByFallthrough.

Convert test/CodeGen/X86/omit-label.ll to FileCheck and add a testcase
for PR4732.

test/CodeGen/Thumb2/thumb2-ifcvt2.ll sees a diff with this commit due to
it being bugpoint-reduced to the point where it doesn't matter what the
condition for the branch is.

Add some more interesting code to
test/CodeGen/X86/2009-08-06-branchfolder-crash.ll, which is the testcase
that originally motivated the RemoveDuplicateSuccessor code, to help
verify that the original problem isn't being re-broken.

llvm-svn: 79338
2009-08-18 15:18:18 +00:00
Dan Gohman 82ac81b1cc Fix a bug that caused globalopt to miscompile tramp3d: don't miss
unruly indices for arrays that are members of structs.

llvm-svn: 79337
2009-08-18 14:58:19 +00:00
Anton Korobeynikov e4d2e8465a Text sections should have 'exec' flag set. This seems to unbreak libstdc++ on linux.
Patch by Dmitry Gorbachev!

llvm-svn: 79334
2009-08-18 14:06:12 +00:00
Misha Brukman 0528437f30 Fixed spelling of MSP430.
llvm-svn: 79333
2009-08-18 13:50:28 +00:00
Daniel Dunbar 33d86f22f2 Fix Triple to recognize the 'bfin' arch.
llvm-svn: 79325
2009-08-18 07:06:26 +00:00
Chris Lattner 0adae25ec1 Make AsmStreamer maintain a notion of the current section, pushing it up from the
MCAsmStreamer.  Based on this, eliminate the current section from AsmPrinter.

While I'm at it, clean up the last of the horrible "switch to null section" stuff
and add an assert.  This change is in preparation for completely eliminating 
asmprinter::switchtosection.

llvm-svn: 79324
2009-08-18 06:15:16 +00:00
Chris Lattner 5de2e2de93 add a horrible hack to the dwarf printer. It looks like mingw is not specifying
an EHFrame section, so we just emit ehframe data into a random section.

This is clearly bad.

llvm-svn: 79323
2009-08-18 06:13:03 +00:00
Nick Lewycky e6e82b8480 Include valgrind in the steps to reproduce if valgrind was used to reproduce
the problem.

llvm-svn: 79322
2009-08-18 06:08:01 +00:00
Chris Lattner 966d32dffb remove some pointless null switchtosections. The IntelAsmPrinter doesn't really work anyway.
llvm-svn: 79321
2009-08-18 06:03:07 +00:00
Evan Cheng dd406177de Fix revsh pattern.
llvm-svn: 79318
2009-08-18 05:43:23 +00:00
Chris Lattner 40bbb85949 add support for some targetflags on GV operands. This allows us to
send instructions like:

NEW: 	movl	"L___stack_chk_guard$non_lazy_ptr" - "L1$pb"(%esi), %eax
OLD: 	movl	L___stack_chk_guard$non_lazy_ptr-"L1$pb"(%esi), %eax

through the streamer.  Several fixmes.

llvm-svn: 79317
2009-08-18 05:33:27 +00:00
Daniel Dunbar 320d331311 Recognize xscale as an ARM arch.
- Patch by Yonggang Luo.

llvm-svn: 79315
2009-08-18 04:51:26 +00:00
Daniel Dunbar 781f94d7fe Add Triple matching for pic16 arch and solaris OS.
- Patch by Yonggang Luo.

llvm-svn: 79314
2009-08-18 04:43:27 +00:00
Chris Lattner 63d3fa5f3b fix another bozo bug
llvm-svn: 79313
2009-08-18 04:34:36 +00:00
Chris Lattner 249e1acf1b fix accidentally inverted conditional and add comment.
llvm-svn: 79312
2009-08-18 04:33:15 +00:00
Chris Lattner 523d2f6e2c turn this conditional into something humans might actually
be able to understand ;-)

llvm-svn: 79311
2009-08-18 04:30:35 +00:00
Chris Lattner dd1db9cc81 "-" should write to stdout, not stderr.
llvm-svn: 79310
2009-08-18 04:03:24 +00:00
Daniel Dunbar 8575a60d33 Change bugpoint to use Triple to make runtime decisions.
- This is cleaner, and makes bugpoint match the host instead of the build
   architecture.

 - Patch by Sandeep Patel!

llvm-svn: 79309
2009-08-18 03:35:57 +00:00
Eric Christopher 3fe6967b5d Separate out Makefile defines so that we can keep the llvm
defined ones from the user defined ones. Propagate accordingly.

llvm-svn: 79308
2009-08-18 03:23:40 +00:00
Daniel Dunbar f4e7b6cca4 Add LLVMInitializeAllTargetInfos for C api, and update
LLVMInitializeNativeTarget to initialize target info.
 - Patch by Jose Fonseca.

llvm-svn: 79307
2009-08-18 03:03:27 +00:00
Dan Gohman 10f1471e2f Make TargetData optional in MemCpyOptimizer.
llvm-svn: 79306
2009-08-18 01:17:52 +00:00
Evan Cheng 1105cbc270 Even more Apple style build horribleness.
llvm-svn: 79299
2009-08-18 00:56:17 +00:00
Dan Gohman 9f2b3db428 Make TargetData optional in SimplifyLibCalls.
llvm-svn: 79298
2009-08-18 00:48:13 +00:00
Anton Korobeynikov 284c9ae1b8 Regenerate
llvm-svn: 79297
2009-08-18 00:40:51 +00:00
Anton Korobeynikov 90e17e787f The attached patches attempt to fix cross builds. For example, if you
try to use i686-darwin to build for arm-eabi, you'll quickly run into
several false assumptions that the target OS must be the same as the
host OS. These patches split $(OS) into $(HOST_OS) and $(TARGET_OS) to
help builds like "make check" and the test-suite able to cross
compile. Along the way a target of *-unknown-eabi is defined as
"Freestanding" so that TARGET_OS checks have something to work with.

Patch by Sandeep Patel!

llvm-svn: 79296
2009-08-18 00:40:33 +00:00
Edward O'Callaghan 2e9e3c3316 LLVM Ada language bindings. Credit to Rod Kay and the AuroraUX team.
llvm-svn: 79295
2009-08-18 00:24:36 +00:00
Dan Gohman 47a31a29c5 Fix function alignment at -Os on x86 to be 1, not 2. getFunctionAlignment
returns a log2 value.

llvm-svn: 79293
2009-08-18 00:20:06 +00:00
Dale Johannesen 4a50e68b65 PowerPC inline asm was emitting two output operands
for a single "m" constraint; this is wrong because the
opcode of a load or store would have to change in parallel.
This patch makes it always compute addresses into a register,
which is correct but not as efficient as possible.  7144566.

llvm-svn: 79292
2009-08-18 00:18:39 +00:00
Devang Patel c6faffde6c Add prefix only if it is needed.
llvm-svn: 79289
2009-08-17 23:17:17 +00:00
Jim Grosbach f933c409e2 cleanups per review. Mostly cosmetic, plus use SmallVector in place of std::vector.
llvm-svn: 79287
2009-08-17 21:40:03 +00:00
John McCall c5680625c8 #include <cstdlib> in the code listing for strtod.
llvm-svn: 79285
2009-08-17 21:07:37 +00:00
Devang Patel 993e527b30 Oops. find all llvm.dbg.global_variables.
llvm-svn: 79274
2009-08-17 20:36:20 +00:00
Jim Grosbach 43bbb9de66 Remove a bit more cruft from the sjlj moving to a backend pass.
llvm-svn: 79272
2009-08-17 20:25:04 +00:00
Benjamin Kramer 436bd9f770 Update CMakeLists.
llvm-svn: 79264
2009-08-17 18:47:11 +00:00
Dan Gohman 7cb92a1e3d Update comments to new-style syntax.
llvm-svn: 79263
2009-08-17 18:45:31 +00:00
Daniel Dunbar f9bdf988a2 Fix build warning.
llvm-svn: 79262
2009-08-17 18:41:42 +00:00
Owen Anderson 9801560ace Privatize the last bits of static type state.
llvm-svn: 79258
2009-08-17 17:59:35 +00:00
Nick Lewycky 3a6fbfa6a4 Test the pass the test is actually for, instead of one that doesn't exist.
llvm-svn: 79257
2009-08-17 17:41:29 +00:00
Owen Anderson 286b3af6ae Move the TypeMap lock to a member on LLVMContextImpl.
llvm-svn: 79256
2009-08-17 17:34:27 +00:00
Owen Anderson d91e6b097d Add locking around the attributes list.
llvm-svn: 79255
2009-08-17 17:10:58 +00:00
Owen Anderson 820739dccc Add locking around signal handler registration.
llvm-svn: 79254
2009-08-17 17:07:22 +00:00
Benjamin Kramer bd3c033713 Clear the uniquing table when initializing TLOF to avoid a crash when the TLOF is reinitialized with a different MCContext.
llvm-svn: 79253
2009-08-17 17:05:44 +00:00
Nick Lewycky 4c737147e1 Don't crash on critical edge. Patch by Andre Tavares.
llvm-svn: 79252
2009-08-17 17:00:57 +00:00
Jim Grosbach 486be66dbd Move the sjlj exception handling conversions to a back-end pass where they
more properly belong. This allows removing the front-end conditionalized
SJLJ code, and cleans up the generated IR considerably. All of the
infrastructure code (calling _Unwind_SjLj_Register/Unregister, etc) is
added by the SjLjEHPrepare pass.

llvm-svn: 79250
2009-08-17 16:41:22 +00:00
Richard Osborne 94a2c1acae Update getSectionForConstant() to to allow mergable sections to be nulled out
if not supported by the ELF subtarget.

llvm-svn: 79249
2009-08-17 16:37:11 +00:00
David Goodwin d813cbfe72 Extend the instruction itinerary model to include the ability to indicate the def and use cycle for each operand. This additional information is optional, so existing itineraries do not need to be changed.
llvm-svn: 79247
2009-08-17 16:02:57 +00:00
Chris Lattner ee97b8b11c the MinPad argument to PadToColumn only really makes sense to be 1,
just remove the argument and replace it with 1.

llvm-svn: 79246
2009-08-17 15:48:08 +00:00
Misha Brukman 5906bc1059 Fixed indentation and spelling.
llvm-svn: 79245
2009-08-17 15:31:24 +00:00
Dan Gohman 74cb168a9e Fix more missing newlines.
llvm-svn: 79244
2009-08-17 15:29:31 +00:00
Dan Gohman d04f9bf01a Fix printing of instructions with null operands.
llvm-svn: 79243
2009-08-17 15:28:08 +00:00
Dan Gohman d0cc3f31c0 Always print at least one space before adding a comment.
llvm-svn: 79242
2009-08-17 15:27:30 +00:00
Dan Gohman 8dd69f88ea Fix debug output to include a newline after printing a Value, now
that Value's operator<< doesn't include one.

llvm-svn: 79240
2009-08-17 15:25:05 +00:00
Duncan Sands c4ce58d8fe Don't access the first element of a potentially empty
vector (&Formals[0]).  With this change llvm-gcc builds
with expensive checking enabled for C, C++ and Fortran.
While there, change a std::vector into a SmallVector.
This is partly gratuitous, but mostly because not all
STL vector implementations define the data method (and
it should be faster).

llvm-svn: 79237
2009-08-17 14:33:27 +00:00
Duncan Sands 5a70e1e37e XFAIL this test since the fix was reverted.
llvm-svn: 79235
2009-08-17 12:20:45 +00:00
Nick Lewycky d87648a850 Add a test that shows that SSI is working correctly.
llvm-svn: 79230
2009-08-17 07:32:08 +00:00
Chris Lattner aa1526419c change AsmPrinter to switch sections using AsmStreamer instead of
doing it directly.  This requires const'izing a bunch of stuff that
took sections, but this seems like the right semantic thing to do:
emitting a label to a section shouldn't mutate the MCSection object
itself, for example.

llvm-svn: 79227
2009-08-17 05:49:08 +00:00
Nick Lewycky aa464002f0 Don't crash trying to promote VLAs.
llvm-svn: 79226
2009-08-17 05:37:31 +00:00
Oscar Fuentes a6cf97dc22 CMake: Updated library dependencies.
llvm-svn: 79223
2009-08-17 04:23:50 +00:00
Chris Lattner a61e93d4b5 give MCAsmStreamer a TargetAsmInfo.
llvm-svn: 79222
2009-08-17 04:23:44 +00:00
Chris Lattner 962c5bd803 formatting cleanups, no functionality change.
llvm-svn: 79221
2009-08-17 04:17:34 +00:00
Oscar Fuentes 8710d9831b Make a declaration consistent with its definition.
llvm-svn: 79220
2009-08-17 04:10:20 +00:00
Oscar Fuentes 349df2c976 CMake: LLVMConfig assigns LLVMX86 to the `native' component
name. Updated LLVM_LINK_COMPONENTS of Kaleidoscope.

llvm-svn: 79219
2009-08-17 01:41:46 +00:00
Erick Tryzelaar 927191f179 Wrap unit test death tests in GTEST_HAS_DEATH_TEST
llvm-svn: 79218
2009-08-17 00:55:33 +00:00
Erick Tryzelaar bc0d74944e Change APFloatTest from using ASSERTs to EXPECTs
llvm-svn: 79216
2009-08-17 00:14:11 +00:00
Erick Tryzelaar ba167da17a Expose creating constant ints and floats from strings to ocaml.
llvm-svn: 79214
2009-08-16 23:37:03 +00:00
Erick Tryzelaar dd99135721 Expose creating constant ints and floats from strings in llvm-c.
llvm-svn: 79213
2009-08-16 23:36:46 +00:00
Erick Tryzelaar fc2280d874 Add helper functions to ConstantInt and ConstantFP to accept strings.
llvm-svn: 79212
2009-08-16 23:36:33 +00:00
Erick Tryzelaar 19f63b2e4d Modify APFloat to take a StringRef instead of a c string.
This also adds unit tests to APFloat that mainly tests the
string handling of APFloat, but not much else of it's api.

llvm-svn: 79210
2009-08-16 23:36:19 +00:00
Erick Tryzelaar 2b01eab81c Add failure tests to APInt unit test.
llvm-svn: 79209
2009-08-16 23:36:01 +00:00
Dan Gohman ff3af725ea Add a getOffsetOf, for building a target-independent expression for
offsetof, similar to getSizeOf for sizeof.

llvm-svn: 79208
2009-08-16 21:26:11 +00:00
Dan Gohman f0b984021c Avoid emitting XMM save code in soft-float or no-implicit-float mode
or some other situation where no xmm registers need to be saved.

llvm-svn: 79207
2009-08-16 21:24:25 +00:00
Dan Gohman 4bb9357921 Delete an unused field.
llvm-svn: 79206
2009-08-16 21:19:53 +00:00
Oscar Fuentes a127f4e010 CMake: Removed traces of obsolete variable LLVM_PLO_FLAGS.
llvm-svn: 79204
2009-08-16 21:01:16 +00:00
Oscar Fuentes acfd9ad43d CMake: New option LLVM_BUILD_TOOLS. Renamed LLVM_EXAMPLES to
LLVM_BUILD_EXAMPLES and set default to true. Documented.

llvm-svn: 79203
2009-08-16 20:56:30 +00:00
Oscar Fuentes 91bd6c922d CMake: Discriminate MINGW, MSYS, CYGWIN: does not try to build llvm-config under mingw without msys.
llvm-svn: 79202
2009-08-16 20:50:41 +00:00
Jakob Stoklund Olesen 84b4d2241f Replace RegScavenger::DistanceMap with a simpler local algorithm.
llvm-svn: 79195
2009-08-16 17:41:39 +00:00
Jakob Stoklund Olesen ac09a9a1f5 Clean up the public interface of RegScavenger.
Remove unused methods and make others private.

llvm-svn: 79194
2009-08-16 17:41:20 +00:00
Jakob Stoklund Olesen 7f91fee62b Be more clever about regclasses in ScheduleDAGSDNodes::EmitCopyFromReg.
If two uses of a CopyFromReg want different regclasses, first try a common
sub-class, then fall back on the copy emitted in AddRegisterOperand. There is
no need for an assert here. The cross-class joiner usually cleans up nicely.

llvm-svn: 79193
2009-08-16 17:40:59 +00:00
Benjamin Kramer 2c64130c43 Fix use after free in Thumb2SizeReduction (PR4707). A MachineInstr was used after erasure.
llvm-svn: 79189
2009-08-16 11:56:42 +00:00
Bill Wendling 195fd9d970 Styalistic and format changes. No functionality change.
llvm-svn: 79187
2009-08-16 11:00:26 +00:00
Benjamin Kramer 171a7d6823 Fix the MSVC build again.
llvm-svn: 79186
2009-08-16 09:44:27 +00:00
Oscar Fuentes 9496a6d7ef CMake: Hopefully this will fix the build on VS. I can't replicate the
failure with VS 9.0, nmake and cmake 2.6.4. The buildbot output does
not show the patch level of cmake, it just says 2.6.

Sadly, parallel builds are broken due to recent changes on LLVM Target
libraries and its auxiliaries (TargetInfo, AsmPrinter, AsmParser). I
have a patch for stablishing the correct dependencies, but cmake is
buggy and generates makefiles that can't handle them.

llvm-svn: 79180
2009-08-16 07:44:02 +00:00
Oscar Fuentes 8160d28712 CMake: Revert r79144. It reverted a change necessary for correct
parallel builds.

llvm-svn: 79177
2009-08-16 05:16:43 +00:00
Chris Lattner 8a4c35dd18 add support for external symbols + X86::MOVPC32r.
llvm-svn: 79175
2009-08-16 04:28:14 +00:00
Eli Friedman d56fca4708 Fix for PR3016: detect the tricky case, where there are
unfoldable references to a PHI node in the block being folded, and disable
the transformation in that case.  The correct transformation of such PHI
nodes depends on whether BB dominates Succ, and dominance is expensive 
to compute here.  (Alternatively, it's possible to check whether any 
uses are live, but that's also essentially a dominance calculation. 
Another alternative is to use reg2mem, but it probably isn't a good idea to
use that in simplifycfg.)

Also, remove some incorrect code from CanPropagatePredecessorsForPHIs 
which is made unnecessary with this patch: it didn't consider the case 
where a PHI node in BB has multiple uses.

llvm-svn: 79174
2009-08-16 04:23:49 +00:00
Chris Lattner c659caa848 implement support for lowering references to global addresses. For example, we now
can asmprint:

NEW: 	movl	"L___stack_chk_guard$non_lazy_ptr", %eax
OLD: 	movl	L___stack_chk_guard$non_lazy_ptr, %eax

where 'new' is coming out of the MCInst version of the printer.

llvm-svn: 79170
2009-08-16 03:12:25 +00:00
Chris Lattner 10f605ce2b more formatting improvements, no functionality change.
llvm-svn: 79167
2009-08-16 02:45:18 +00:00
Chris Lattner 043bb021da code formatting improvements, no functionality change.
llvm-svn: 79165
2009-08-16 02:36:40 +00:00
Chris Lattner 107c21eafc when emitting errors about CHECK-NEXT directives, show the line that the
CHECK-NEXT is on.

llvm-svn: 79164
2009-08-16 02:22:31 +00:00
Erick Tryzelaar 9813beadcd Add an llvm-c function that lets you insert an instruction with a name.
llvm-svn: 79163
2009-08-16 02:20:57 +00:00
Erick Tryzelaar f57618f62d Expose most of the Constant creation functions to ocaml.
llvm-svn: 79162
2009-08-16 02:20:37 +00:00
Erick Tryzelaar 3235144799 Expose most of the IRBuilder functionality to ocaml.
llvm-svn: 79161
2009-08-16 02:20:24 +00:00
Erick Tryzelaar 4cc690cce4 Expose most of the Constant creation functions to llvm-c.
llvm-svn: 79160
2009-08-16 02:20:12 +00:00
Erick Tryzelaar 3045b8b5d6 Expose most of the rest of IRBuilder's functions to llvm-c.
llvm-svn: 79159
2009-08-16 02:19:59 +00:00
Erick Tryzelaar a24e5504d0 Add more casts to the IRBuilder.
llvm-svn: 79158
2009-08-16 02:19:46 +00:00
Evan Cheng badf17cdc7 Needs to check whether unaligned load / store of i64 is legal here.
llvm-svn: 79150
2009-08-15 23:41:42 +00:00
Bill Wendling f7b4c5a295 Remove <iostream>.
llvm-svn: 79146
2009-08-15 22:28:08 +00:00