Chris Lattner [Tue, 7 Apr 2009 02:56:46 +0000 (02:56 +0000)]
Add an API for the bitstream reader to read blobs and return
them by reference, instead of packing each byte into a
smallvector.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@68486
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Tue, 7 Apr 2009 02:55:53 +0000 (02:55 +0000)]
remove empty section
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@68485
91177308-0d34-0410-b5e6-
96231b3b80d8
Dan Gohman [Tue, 7 Apr 2009 00:26:29 +0000 (00:26 +0000)]
Add svn:ignore properties.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@68479
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Mon, 6 Apr 2009 22:44:40 +0000 (22:44 +0000)]
stub out code for reading record with blobs as blobs. Not active yet.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@68472
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Mon, 6 Apr 2009 22:43:46 +0000 (22:43 +0000)]
allow clients to look up abbrev id's
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@68471
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Mon, 6 Apr 2009 22:26:26 +0000 (22:26 +0000)]
Add a new EmitRecordWithBlob API that allows a blob to be emitted
without converting each byte to a uint64_t to stick in a SmallVector.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@68469
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Mon, 6 Apr 2009 21:50:39 +0000 (21:50 +0000)]
add a new Blob encoding abbreviation for bitcode files that emits
elements in a form that is efficient for the reader to just get a
pointer in memory and start reading. APIs to do efficient reading
and writing are still todo.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@68465
91177308-0d34-0410-b5e6-
96231b3b80d8
Bob Wilson [Mon, 6 Apr 2009 21:46:51 +0000 (21:46 +0000)]
Handle 'a' modifier in ARM inline assembly.
Patch by Richard Pennington.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@68464
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Mon, 6 Apr 2009 21:37:10 +0000 (21:37 +0000)]
split ReadAbbreviatedLiteral out of ReadAbbreviatedField.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@68463
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Mon, 6 Apr 2009 21:34:58 +0000 (21:34 +0000)]
reduce indentation with early-out
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@68462
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Mon, 6 Apr 2009 21:20:01 +0000 (21:20 +0000)]
simplify code a bit.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@68461
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Mon, 6 Apr 2009 21:12:29 +0000 (21:12 +0000)]
simplify to reduce indentation.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@68460
91177308-0d34-0410-b5e6-
96231b3b80d8
Torok Edwin [Mon, 6 Apr 2009 20:57:34 +0000 (20:57 +0000)]
revert r68457, its crashing in make check.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@68459
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Mon, 6 Apr 2009 20:54:32 +0000 (20:54 +0000)]
Teach llvm-bcanalyzer to skip over the header we use on LLVM IR files.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@68458
91177308-0d34-0410-b5e6-
96231b3b80d8
Torok Edwin [Mon, 6 Apr 2009 20:49:21 +0000 (20:49 +0000)]
fix (part of) memory leak on shutdown. See PR2975.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@68457
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Mon, 6 Apr 2009 20:35:19 +0000 (20:35 +0000)]
clean up some html
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@68456
91177308-0d34-0410-b5e6-
96231b3b80d8
Mike Stump [Mon, 6 Apr 2009 19:58:11 +0000 (19:58 +0000)]
Avoid -O3 on Darwin for now.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@68455
91177308-0d34-0410-b5e6-
96231b3b80d8
Ed Schouten [Mon, 6 Apr 2009 13:06:48 +0000 (13:06 +0000)]
Let the strcat optimizer return the pointer to the start of the buffer,
instead of the place where it started to perform the string copy.
- PR3661
- Patch by Benjamin Kramer!
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@68443
91177308-0d34-0410-b5e6-
96231b3b80d8
Sanjiv Gupta [Mon, 6 Apr 2009 10:54:50 +0000 (10:54 +0000)]
Map stack based frameindices for spills to zero based indices that can be accessed based on an external symbol defining the location of temporary data for a function. For example: we have spill slots addressed as foo.tmp + 0, foo.tmp + 1 etc.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@68442
91177308-0d34-0410-b5e6-
96231b3b80d8
Bill Wendling [Sun, 5 Apr 2009 12:38:44 +0000 (12:38 +0000)]
Add character encoding declaration to fix verification warning.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@68440
91177308-0d34-0410-b5e6-
96231b3b80d8
Bill Wendling [Sun, 5 Apr 2009 12:37:44 +0000 (12:37 +0000)]
Obsessively format this document.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@68439
91177308-0d34-0410-b5e6-
96231b3b80d8
Mikhail Glushenkov [Sun, 5 Apr 2009 09:07:08 +0000 (09:07 +0000)]
Add segment flag bits to ELF.h.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@68438
91177308-0d34-0410-b5e6-
96231b3b80d8
Bill Wendling [Sun, 5 Apr 2009 00:44:06 +0000 (00:44 +0000)]
Add character encoding declaration.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@68433
91177308-0d34-0410-b5e6-
96231b3b80d8
Bill Wendling [Sun, 5 Apr 2009 00:43:04 +0000 (00:43 +0000)]
Fix validation error.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@68432
91177308-0d34-0410-b5e6-
96231b3b80d8
Bill Wendling [Sun, 5 Apr 2009 00:41:19 +0000 (00:41 +0000)]
A lot of formatting changes.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@68431
91177308-0d34-0410-b5e6-
96231b3b80d8
Oscar Fuentes [Sat, 4 Apr 2009 22:52:02 +0000 (22:52 +0000)]
CMake: Added notes pointing to the LLVM CMake documentation.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@68429
91177308-0d34-0410-b5e6-
96231b3b80d8
Oscar Fuentes [Sat, 4 Apr 2009 22:41:07 +0000 (22:41 +0000)]
CMake: defines and uses macro add_llvm_definitions for keeping track
of compiler parameters explicitly added by the build
specification. This macro replaces the cmake built-in
`add_definitions'.
Detects glibc and defines _GNU_SOURCE accordingly.
Resolves bug 3882.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@68428
91177308-0d34-0410-b5e6-
96231b3b80d8
Bill Wendling [Sat, 4 Apr 2009 22:36:02 +0000 (22:36 +0000)]
Fix some HTML validation errors.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@68427
91177308-0d34-0410-b5e6-
96231b3b80d8
Bill Wendling [Sat, 4 Apr 2009 22:27:03 +0000 (22:27 +0000)]
General clean-up of the bitcode format documentation. Having the paragraphs
formatted the same, putting words in <tt> tags, adding —s, etc.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@68426
91177308-0d34-0410-b5e6-
96231b3b80d8
Nick Lewycky [Sat, 4 Apr 2009 10:24:24 +0000 (10:24 +0000)]
Try SSE2?
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@68423
91177308-0d34-0410-b5e6-
96231b3b80d8
Nick Lewycky [Sat, 4 Apr 2009 09:39:23 +0000 (09:39 +0000)]
CloneModule stores the BasicBlock mapping in ValueMap. There's no need to
recompute it. This fixes a O(n^2) in number of blocks when reducing a crash.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@68422
91177308-0d34-0410-b5e6-
96231b3b80d8
Nick Lewycky [Sat, 4 Apr 2009 07:42:46 +0000 (07:42 +0000)]
Remove bogus include.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@68421
91177308-0d34-0410-b5e6-
96231b3b80d8
Nick Lewycky [Sat, 4 Apr 2009 07:22:01 +0000 (07:22 +0000)]
Add support for embedded metadata to LLVM. This introduces two new types of
Constant, MDString and MDNode which can only be used by globals with a name
that starts with "llvm." or as arguments to a function with the same naming
restriction.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@68420
91177308-0d34-0410-b5e6-
96231b3b80d8
Nick Lewycky [Sat, 4 Apr 2009 07:20:43 +0000 (07:20 +0000)]
Fix test on non-x86 platforms.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@68419
91177308-0d34-0410-b5e6-
96231b3b80d8
Stefanus Du Toit [Fri, 3 Apr 2009 21:41:52 +0000 (21:41 +0000)]
Test commit access to LLVM with some minor narcissism.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@68408
91177308-0d34-0410-b5e6-
96231b3b80d8
Bob Wilson [Fri, 3 Apr 2009 21:08:42 +0000 (21:08 +0000)]
Wrap some lines to fix indentation problems.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@68405
91177308-0d34-0410-b5e6-
96231b3b80d8
Bob Wilson [Fri, 3 Apr 2009 20:53:25 +0000 (20:53 +0000)]
Fix some comments.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@68404
91177308-0d34-0410-b5e6-
96231b3b80d8
Bill Wendling [Fri, 3 Apr 2009 20:32:13 +0000 (20:32 +0000)]
Duplicate entry.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@68401
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Fri, 3 Apr 2009 20:25:41 +0000 (20:25 +0000)]
"This adds a getName() method to TargetRegisterClass, just like in TargetRegisterInfo.
This makes debugging register classes a bit easier."
Patch by Jakob Stoklund Olesen!
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@68400
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Fri, 3 Apr 2009 20:23:52 +0000 (20:23 +0000)]
"Add documentation about the fix for missing x86
target library in windows under the "Common problems" section."
Patch by Stefanus Du Toit!
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@68399
91177308-0d34-0410-b5e6-
96231b3b80d8
Dan Gohman [Fri, 3 Apr 2009 20:11:30 +0000 (20:11 +0000)]
Fix a TargetLowering optimization so that it doesn't duplicate
loads when an input node has multiple uses.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@68398
91177308-0d34-0410-b5e6-
96231b3b80d8
Daniel Dunbar [Fri, 3 Apr 2009 18:43:17 +0000 (18:43 +0000)]
Add fast path for raw_ostream output of strings.
- Particularly nice for small constant strings, which get optimized
down nicely. On a synthetic benchmark writing out "hello" in a
loop, this is about 2x faster with gcc and 3x faster with
llvm-gcc. llc on insn-attrtab.bc from 403.gcc is about .5% faster.
- I tried for a fancier solution which wouldn't increase code size as
much (by trying to match constant arrays), but can't quite make it
fly.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@68396
91177308-0d34-0410-b5e6-
96231b3b80d8
Oscar Fuentes [Fri, 3 Apr 2009 12:16:32 +0000 (12:16 +0000)]
CMake: tools/llvm-config/CMakeLists.txt: Use ! instead of comma as
separator in sed scripts. Resolves Bug 3881.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@68385
91177308-0d34-0410-b5e6-
96231b3b80d8
Oscar Fuentes [Fri, 3 Apr 2009 12:11:43 +0000 (12:11 +0000)]
CMake: removed IA64AsmPrinter.cpp from lib/Target/IA64/CMakeLists.txt
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@68384
91177308-0d34-0410-b5e6-
96231b3b80d8
Anton Korobeynikov [Fri, 3 Apr 2009 10:41:41 +0000 (10:41 +0000)]
Separate MIPS asmprinter
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@68383
91177308-0d34-0410-b5e6-
96231b3b80d8
Anton Korobeynikov [Fri, 3 Apr 2009 10:41:17 +0000 (10:41 +0000)]
Fix target library name
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@68382
91177308-0d34-0410-b5e6-
96231b3b80d8
Anton Korobeynikov [Fri, 3 Apr 2009 10:41:00 +0000 (10:41 +0000)]
Fix comment
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@68381
91177308-0d34-0410-b5e6-
96231b3b80d8
Anton Korobeynikov [Fri, 3 Apr 2009 10:38:51 +0000 (10:38 +0000)]
Move IA64 asmprinter to separate library
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@68380
91177308-0d34-0410-b5e6-
96231b3b80d8
Mon P Wang [Fri, 3 Apr 2009 02:43:30 +0000 (02:43 +0000)]
Added a x86 dag combine to increase the chances to use a
movq for v2i64 on x86-32.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@68368
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Fri, 3 Apr 2009 00:29:19 +0000 (00:29 +0000)]
update some syntax
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@68362
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Fri, 3 Apr 2009 00:26:01 +0000 (00:26 +0000)]
Work around an apparent GCC miscompilation by specializing different,
this fixes a regression on some compilers from r68147.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@68356
91177308-0d34-0410-b5e6-
96231b3b80d8
Dan Gohman [Fri, 3 Apr 2009 00:25:26 +0000 (00:25 +0000)]
Delete ISD::INSERT_SUBREG and ISD::EXTRACT_SUBREG, which are unused.
Note that these are distinct from TargetInstrInfo::INSERT_SUBREG
and TargetInstrInfo::EXTRACT_SUBREG, which are used.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@68355
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Fri, 3 Apr 2009 00:10:56 +0000 (00:10 +0000)]
correct patch
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@68353
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Fri, 3 Apr 2009 00:10:31 +0000 (00:10 +0000)]
add patch to go along with r68350
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@68352
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Fri, 3 Apr 2009 00:02:39 +0000 (00:02 +0000)]
use higher level APIs.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@68351
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Thu, 2 Apr 2009 23:53:03 +0000 (23:53 +0000)]
add missing *
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@68350
91177308-0d34-0410-b5e6-
96231b3b80d8
Sanjiv Gupta [Thu, 2 Apr 2009 18:33:12 +0000 (18:33 +0000)]
Fixed build warnings.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@68333
91177308-0d34-0410-b5e6-
96231b3b80d8
Sanjiv Gupta [Thu, 2 Apr 2009 18:03:10 +0000 (18:03 +0000)]
To convert the StopPoint insn into an assembler directive by ISel, we need to have access to the line number field. So we convert that info as an operand by custom handling DBG_STOPPOINT in legalize.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@68329
91177308-0d34-0410-b5e6-
96231b3b80d8
Sanjiv Gupta [Thu, 2 Apr 2009 17:42:00 +0000 (17:42 +0000)]
Params are not being generated as static globals now. The caller passes them onto the callee's stack directly and the callee loads the argvals from its own stack. Clang generated frameindexes validatd by recalculating the stack as if all frameindexes represent 1-byte slots.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@68327
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Thu, 2 Apr 2009 03:06:26 +0000 (03:06 +0000)]
fix overflow checks in SmallVector:
"The code was doing "if (End+NumInputs > Capacity) ...". If End is
close to 0xFFFFFFFF and NumInputs is large, it'll overflow, the
condition will come out false, and the vector won't grow to
accommodate the new elements, and the program will crash in memmove."
Patch by Jeffrey Yasskin!
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@68277
91177308-0d34-0410-b5e6-
96231b3b80d8
Mikhail Glushenkov [Thu, 2 Apr 2009 01:11:37 +0000 (01:11 +0000)]
Fix build on Linux.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@68269
91177308-0d34-0410-b5e6-
96231b3b80d8
Owen Anderson [Wed, 1 Apr 2009 23:53:49 +0000 (23:53 +0000)]
Reapply r68211, with the miscompilations it caused fixed.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@68262
91177308-0d34-0410-b5e6-
96231b3b80d8
Bill Wendling [Wed, 1 Apr 2009 22:44:18 +0000 (22:44 +0000)]
Make the constants fit.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@68258
91177308-0d34-0410-b5e6-
96231b3b80d8
Devang Patel [Wed, 1 Apr 2009 22:34:41 +0000 (22:34 +0000)]
Clean up pass manager cache after each run.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@68254
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Wed, 1 Apr 2009 22:14:45 +0000 (22:14 +0000)]
silence warning in release-asserts build.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@68253
91177308-0d34-0410-b5e6-
96231b3b80d8
Daniel Dunbar [Wed, 1 Apr 2009 21:53:23 +0000 (21:53 +0000)]
Add llvm::Triple class for abstracting access to target triples.
- The code is silly, I'm just amusing myself. Rewrite to be efficient
if you like. :)
Also, if you wish to debate the proper names of the triple components
I'm all ears.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@68252
91177308-0d34-0410-b5e6-
96231b3b80d8
Misha Brukman [Wed, 1 Apr 2009 21:37:19 +0000 (21:37 +0000)]
Fixed file header comment.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@68250
91177308-0d34-0410-b5e6-
96231b3b80d8
Misha Brukman [Wed, 1 Apr 2009 21:36:40 +0000 (21:36 +0000)]
Added tests for math utility functions; fixed another test's header comment.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@68249
91177308-0d34-0410-b5e6-
96231b3b80d8
Misha Brukman [Wed, 1 Apr 2009 21:33:08 +0000 (21:33 +0000)]
Fixed spelling.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@68248
91177308-0d34-0410-b5e6-
96231b3b80d8
Devang Patel [Wed, 1 Apr 2009 21:27:08 +0000 (21:27 +0000)]
Remove dead code.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@68246
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Wed, 1 Apr 2009 21:11:04 +0000 (21:11 +0000)]
add this to SVN to allow collaborative hacking.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@68243
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Wed, 1 Apr 2009 19:50:49 +0000 (19:50 +0000)]
Add range insert method for DenseSet and define DenseMapInfo for chars.
Patch by Kevin Fan!
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@68239
91177308-0d34-0410-b5e6-
96231b3b80d8
Evan Cheng [Wed, 1 Apr 2009 18:54:56 +0000 (18:54 +0000)]
Recognize arm triplets.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@68229
91177308-0d34-0410-b5e6-
96231b3b80d8
Dan Gohman [Wed, 1 Apr 2009 18:45:54 +0000 (18:45 +0000)]
Use CHAR_BIT instead of hard-coding 8 in several places where it
is appropriate. This helps visually differentiate host-oriented
calculations from target-oriented calculations.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@68227
91177308-0d34-0410-b5e6-
96231b3b80d8
Ted Kremenek [Wed, 1 Apr 2009 18:24:22 +0000 (18:24 +0000)]
Constify method to make VC++ happy. Patch by Brian Diekelman!
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@68222
91177308-0d34-0410-b5e6-
96231b3b80d8
Dan Gohman [Wed, 1 Apr 2009 18:10:16 +0000 (18:10 +0000)]
Use LLVM type names instead of C type names in comments, to be
less ambiguous and less C-specific.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@68219
91177308-0d34-0410-b5e6-
96231b3b80d8
Bob Wilson [Wed, 1 Apr 2009 17:58:54 +0000 (17:58 +0000)]
Fix PR3862: Recognize some ARM-specific constraints for immediates in inline
assembly.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@68218
91177308-0d34-0410-b5e6-
96231b3b80d8
Dan Gohman [Wed, 1 Apr 2009 16:37:47 +0000 (16:37 +0000)]
Revert r68172. It caused regressions in
Applications/Burg/burg
Applications/ClamAV/clamscan
and many other tests.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@68211
91177308-0d34-0410-b5e6-
96231b3b80d8
Misha Brukman [Wed, 1 Apr 2009 16:13:29 +0000 (16:13 +0000)]
Fixed spelling.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@68209
91177308-0d34-0410-b5e6-
96231b3b80d8
Ted Kremenek [Wed, 1 Apr 2009 15:40:21 +0000 (15:40 +0000)]
CMake: Have generated Xcode projects also contain the LLVM header files.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@68206
91177308-0d34-0410-b5e6-
96231b3b80d8
Nick Lewycky [Wed, 1 Apr 2009 04:39:25 +0000 (04:39 +0000)]
Detect that we're building from a git checkout like we do for cvs and svn.
Based on a patch by Nicolas Trangez on the unladen-swallow mailing list!
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@68187
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Wed, 1 Apr 2009 02:03:38 +0000 (02:03 +0000)]
hopefully fix an apparent build error on windows.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@68175
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Wed, 1 Apr 2009 01:43:03 +0000 (01:43 +0000)]
fix a serious regression I introduced in my previous patch.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@68173
91177308-0d34-0410-b5e6-
96231b3b80d8
Owen Anderson [Wed, 1 Apr 2009 01:20:45 +0000 (01:20 +0000)]
Enhance GVN to propagate simple conditionals. This fixes PR3921.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@68172
91177308-0d34-0410-b5e6-
96231b3b80d8
Misha Brukman [Wed, 1 Apr 2009 00:35:00 +0000 (00:35 +0000)]
include Makefile.common before using $(BuildMode) to get its definition
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@68167
91177308-0d34-0410-b5e6-
96231b3b80d8
Misha Brukman [Wed, 1 Apr 2009 00:15:46 +0000 (00:15 +0000)]
* Fixed spelling of `invertible'
* Simplified if statement
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@68163
91177308-0d34-0410-b5e6-
96231b3b80d8
Douglas Gregor [Tue, 31 Mar 2009 23:19:54 +0000 (23:19 +0000)]
Allow the use of pointers to const within PointerUnion.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@68159
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Tue, 31 Mar 2009 23:09:51 +0000 (23:09 +0000)]
add a converting operator
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@68158
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Tue, 31 Mar 2009 22:55:09 +0000 (22:55 +0000)]
reimplement BitcodeReaderValueList in terms of WeakVH instead of making
it be an LLVM IR User object.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@68156
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Tue, 31 Mar 2009 22:13:29 +0000 (22:13 +0000)]
Make the key of ValueRankMap an AssertingVH, so that we die violently
if it dangles.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@68150
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Tue, 31 Mar 2009 22:11:05 +0000 (22:11 +0000)]
Add two new classes: WeakVH and AssertingVH. These are both "ValueHandles",
which are effectively smart pointers to Value*'s. They are both very light
weight and simple, and react to values being destroyed or being RAUW'd.
WeakVN does a best effort to follow a value around, including through RAUW
operations and will get nulled out of the value is destroyed. This is useful
for the eventual "metadata that references a value" work, because it is a
reference to a value that does not show up on its use_* list.
AssertingVH is a pointer that compiles down to a dumb raw pointer when
assertions are disabled. When enabled, it emits an assertion if the
pointed-to value is destroyed while it is still being referenced. This
is very useful for Maps and other things, and should have caught the recent
bugs in CallGraph and Reassociate, for example.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@68149
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Tue, 31 Mar 2009 21:28:39 +0000 (21:28 +0000)]
teach PointerLikeTypeTraits that all pointers to pointers may only be 4-byte aligned.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@68147
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Tue, 31 Mar 2009 20:57:23 +0000 (20:57 +0000)]
add some accessors so I can play games with DenseMaps.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@68145
91177308-0d34-0410-b5e6-
96231b3b80d8
Evan Cheng [Tue, 31 Mar 2009 20:42:45 +0000 (20:42 +0000)]
Throttle back "fold select into operand" transformation. InstCombine should not generate selects of two constants unless they are selects of 0 and 1.
e.g.
define i32 @t1(i32 %c, i32 %x) nounwind {
%t1 = icmp eq i32 %c, 0
%t2 = lshr i32 %x, 18
%t3 = select i1 %t1, i32 %t2, i32 %x
ret i32 %t3
}
was turned into
define i32 @t2(i32 %c, i32 %x) nounwind {
%t1 = icmp eq i32 %c, 0
%t2 = select i1 %t1, i32 18, i32 0
%t3 = lshr i32 %x, %t2
ret i32 %t3
}
For most targets, that means materializing two constants and then a select. e.g. On x86-64
movl %esi, %eax
shrl $18, %eax
testl %edi, %edi
cmovne %esi, %eax
ret
=>
xorl %eax, %eax
testl %edi, %edi
movl $18, %ecx
cmovne %eax, %ecx
movl %esi, %eax
shrl %cl, %eax
ret
Also, the optimizer and codegen can reason about shl / and / add, etc. by a constant. This optimization will hinder optimizations using ComputeMaskedBits.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@68142
91177308-0d34-0410-b5e6-
96231b3b80d8
Evan Cheng [Tue, 31 Mar 2009 19:39:24 +0000 (19:39 +0000)]
Fully general expansion of integer shift of any size.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@68134
91177308-0d34-0410-b5e6-
96231b3b80d8
Evan Cheng [Tue, 31 Mar 2009 19:38:51 +0000 (19:38 +0000)]
i128 shift libcalls are not available on x86.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@68133
91177308-0d34-0410-b5e6-
96231b3b80d8
Dan Gohman [Tue, 31 Mar 2009 18:39:13 +0000 (18:39 +0000)]
Reapply 68073, with fixes. EH Landing-pad basic blocks are not
entered via fall-through. Don't miss fallthroughs from blocks
terminated by conditional branches. Also, move
isOnlyReachableByFallthrough out of line.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@68129
91177308-0d34-0410-b5e6-
96231b3b80d8
Mikhail Glushenkov [Tue, 31 Mar 2009 18:33:54 +0000 (18:33 +0000)]
Do not pass '-relocation-model=pic' to llc.
Does not work well on 32 bit targets. Bug reported by Albert Graef.
This patch also adds new "-Wllc,option" syntax to pass options to llc.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@68127
91177308-0d34-0410-b5e6-
96231b3b80d8
Douglas Gregor [Tue, 31 Mar 2009 18:31:03 +0000 (18:31 +0000)]
Stop guessing, start thinking, and make PointerUnion3::is actually be correct.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@68126
91177308-0d34-0410-b5e6-
96231b3b80d8
Dan Gohman [Tue, 31 Mar 2009 18:20:47 +0000 (18:20 +0000)]
Add an explicit -asm-verbose to these tests, to make it
possible to run the tests with -asm-verbose defaulting
to false.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@68124
91177308-0d34-0410-b5e6-
96231b3b80d8