Owen Anderson
0d09499cf3
Fix some remaining issues with decoding ARM-mode memory instructions, and add another batch of tests.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@137502 91177308-0d34-0410-b5e6-96231b3b80d8
2011-08-12 20:36:11 +00:00
Bill Wendling
e6e8826870
Initial commit of the 'landingpad' instruction.
...
This implements the 'landingpad' instruction. It's used to indicate that a basic
block is a landing pad. There are several restrictions on its use (see
LangRef.html for more detail). These restrictions allow the exception handling
code to gather the information it needs in a much more sane way.
This patch has the definition, implementation, C interface, parsing, and bitcode
support in it.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@137501 91177308-0d34-0410-b5e6-96231b3b80d8
2011-08-12 20:24:12 +00:00
Owen Anderson
79628e92e1
Fix decoding of ARM-mode STRH.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@137499 91177308-0d34-0410-b5e6-96231b3b80d8
2011-08-12 20:02:50 +00:00
Chris Lattner
c513309224
apparently variable naming conventions never got added, document the
...
prevailing convention. Thanks to Dave Zarzycki for the patch.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@137497 91177308-0d34-0410-b5e6-96231b3b80d8
2011-08-12 19:49:16 +00:00
Chris Lattner
9a5ffbfa6e
minor typo
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@137496 91177308-0d34-0410-b5e6-96231b3b80d8
2011-08-12 19:48:19 +00:00
Owen Anderson
a211c2c7e9
Port over the basic ARM encodings test file to a decoding test file. Greatly increases our test coverage of basic ARM-mode instructions.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@137495 91177308-0d34-0410-b5e6-96231b3b80d8
2011-08-12 19:42:45 +00:00
Owen Anderson
6368119c25
Specify fixed bit in the LDRBT encoding, which allows us to distinguish it from certain USAT16 encodings.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@137494 91177308-0d34-0410-b5e6-96231b3b80d8
2011-08-12 19:41:29 +00:00
Devang Patel
92a36e6583
Constify.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@137489 91177308-0d34-0410-b5e6-96231b3b80d8
2011-08-12 18:18:02 +00:00
Chris Lattner
aa175c37d1
fix one reference that slipped through, thanks Eli
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@137488 91177308-0d34-0410-b5e6-96231b3b80d8
2011-08-12 18:12:40 +00:00
Owen Anderson
7cdbf086e4
Fix decoding of pre-indexed stores.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@137487 91177308-0d34-0410-b5e6-96231b3b80d8
2011-08-12 18:12:39 +00:00
Akira Hatanaka
11abf5bca9
Test case for 137484
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@137486 91177308-0d34-0410-b5e6-96231b3b80d8
2011-08-12 18:12:06 +00:00
Devang Patel
cd9f6c53de
Use ArrayRef.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@137485 91177308-0d34-0410-b5e6-96231b3b80d8
2011-08-12 18:10:19 +00:00
Akira Hatanaka
0285e7d1c1
When constant double 0.0 is lowered, make sure 0 is copied directly from an
...
integer register to a floating point register. It is not valid to interpret
the value of a floating pointer register as part of a double precision
floating point value after a single precision floating point computational
or move instruction stores its result to the register.
- In the test case, the following code is generated before this patch is
applied:
mtc1 $zero, $f2 ; unformatted copy to $f2
mov.s $f0, $f2 ; $f0 is in single format
sdc1 $f12, 0($sp)
mov.s $f1, $f2 ; $f1 is in single format
c.eq.d $f12, $f0 ; $f0 cannot be interpreted as double
- The following code is generated after this patch is applied:
mtc1 $zero, $f0 ; unformatted copy to $f0
mtc1 $zero, $f1 ; unformatted copy to $f1
c.eq.d $f12, $f0 ; $f0 can be interpreted as double
Bhanu Chetlapalli and Chris Dearman at MIPS technologies reported this bug and
provided the test case.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@137484 91177308-0d34-0410-b5e6-96231b3b80d8
2011-08-12 18:09:59 +00:00
Chris Lattner
d95f8f6ada
add ifdef's to let people easily remove these dead api for testing.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@137483 91177308-0d34-0410-b5e6-96231b3b80d8
2011-08-12 18:08:19 +00:00
Chris Lattner
1bcbf8582e
switch to the new struct api.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@137482 91177308-0d34-0410-b5e6-96231b3b80d8
2011-08-12 18:07:26 +00:00
Chris Lattner
c4d0e9fbdd
switch to the new struct apis.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@137481 91177308-0d34-0410-b5e6-96231b3b80d8
2011-08-12 18:07:07 +00:00
Chris Lattner
3ebb64946b
switch to use the new api for structtypes.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@137480 91177308-0d34-0410-b5e6-96231b3b80d8
2011-08-12 18:06:37 +00:00
Chris Lattner
8dcfc74af4
forward to the correct constructor.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@137479 91177308-0d34-0410-b5e6-96231b3b80d8
2011-08-12 18:03:30 +00:00
Devang Patel
2e85b1bfa7
Provide fast path as Jakob suggested.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@137478 91177308-0d34-0410-b5e6-96231b3b80d8
2011-08-12 18:01:34 +00:00
Owen Anderson
3f3570a38b
Separate decoding for STREXD and LDREXD to make each work better.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@137476 91177308-0d34-0410-b5e6-96231b3b80d8
2011-08-12 17:58:32 +00:00
Jim Grosbach
7a8729effc
Tidy up formatting.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@137471 91177308-0d34-0410-b5e6-96231b3b80d8
2011-08-12 17:43:31 +00:00
Chris Lattner
f4bbcaabeb
add two missing function impls
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@137470 91177308-0d34-0410-b5e6-96231b3b80d8
2011-08-12 17:43:05 +00:00
Chris Lattner
2c38d65fd9
add new accessors to reflect new terminology in struct types.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@137468 91177308-0d34-0410-b5e6-96231b3b80d8
2011-08-12 17:31:02 +00:00
Nick Lewycky
b2c4eea9d0
Fix bugpoint fallout from the new type system.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@137467 91177308-0d34-0410-b5e6-96231b3b80d8
2011-08-12 17:25:45 +00:00
Nadav Rotem
c796ae1d68
Revert r137310 because it does not optimize any code on ToT
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@137466 91177308-0d34-0410-b5e6-96231b3b80d8
2011-08-12 17:15:04 +00:00
Jim Grosbach
46c38aff89
Tidy up formatting.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@137464 91177308-0d34-0410-b5e6-96231b3b80d8
2011-08-12 17:01:02 +00:00
Chad Rosier
0871221c25
Whitespace and formatting. No functional change intended.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@137463 91177308-0d34-0410-b5e6-96231b3b80d8
2011-08-12 16:45:18 +00:00
Duncan Sands
1f6a329f79
Silence a bunch (but not all) "variable written but not read" warnings
...
when building with assertions disabled.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@137460 91177308-0d34-0410-b5e6-96231b3b80d8
2011-08-12 14:54:45 +00:00
NAKAMURA Takumi
3c757ef2ef
docs/GettingStarted.html: [Git] Add instructions how to generate patchset with Git.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@137444 91177308-0d34-0410-b5e6-96231b3b80d8
2011-08-12 07:48:06 +00:00
NAKAMURA Takumi
7a362f4111
docs/GettingStarted.html: [Git] Mention branch.master.rebase for the tracking branch.
...
Thanks to Jeff Yasskin to reword.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@137443 91177308-0d34-0410-b5e6-96231b3b80d8
2011-08-12 07:48:01 +00:00
NAKAMURA Takumi
24ad111a05
docs/GettingStarted.html: [Git] Split the subsubsection for committer's section.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@137442 91177308-0d34-0410-b5e6-96231b3b80d8
2011-08-12 07:47:55 +00:00
NAKAMURA Takumi
829ef927cf
.gitignore: Ignore /autom4te.cache. We can execute "PATH=/path/to/autotools/bin autoconf/AutoRegen.sh".
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@137441 91177308-0d34-0410-b5e6-96231b3b80d8
2011-08-12 07:47:50 +00:00
NAKAMURA Takumi
b5bb29c71f
docs: Update HTML markup(s).
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@137433 91177308-0d34-0410-b5e6-96231b3b80d8
2011-08-12 06:17:17 +00:00
NAKAMURA Takumi
3cc8482b06
docs/llvm.css: Introduce <blockquote><pre>. It may be used as blockquoted "doc_code".
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@137432 91177308-0d34-0410-b5e6-96231b3b80d8
2011-08-12 06:17:11 +00:00
Chris Lattner
823eb1ca11
Fix an obscure bug in PointerUnion that would bite PointerUnion3/4. Basically,
...
when checking isNull(), we'd pick off the sentinel bit for the outer
PointerUnion, but would not recursively convert the inner pointerunion to bool,
so if *its* sentinel bit is set, isNull() would incorrectly return false.
No testcase, because someone hit this when they were trying to refactor code
to use PointerUnion3, but they since found a better solution.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@137428 91177308-0d34-0410-b5e6-96231b3b80d8
2011-08-12 04:31:38 +00:00
Eli Friedman
79d7de7650
Misc atomic doc tweaks; reordering operations across Acquire/Release can be beneficial.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@137425 91177308-0d34-0410-b5e6-96231b3b80d8
2011-08-12 03:38:32 +00:00
NAKAMURA Takumi
1221139f10
include/llvm/Config/config.h.cmake: Reorder to follow config.h.in, and import stuff from llvm-config.h.cmake and clang/config.h.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@137424 91177308-0d34-0410-b5e6-96231b3b80d8
2011-08-12 03:27:54 +00:00
NAKAMURA Takumi
8776fa44d4
CMake: Eliminate unused checks and #undef(s) as below;
...
STACK_DIRECTION
YYTEXT_POINTER
HAVE_NAMESPACES
HAVE_STD_ITERATOR
HAVE_FWD_ITERATOR
HAVE_BI_ITERATOR
HAVE_GLOBAL_HASH_MAP
HAVE_GLOBAL_HASH_SET
HAVE_GNU_EXT_HASH_MAP
HAVE_GNU_EXT_HASH_SET
HAVE_STD_EXT_HASH_MAP
HAVE_STD_EXT_HASH_SET
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@137423 91177308-0d34-0410-b5e6-96231b3b80d8
2011-08-12 03:27:48 +00:00
Benjamin Kramer
0d46ccfc5c
MachOWriter: Don't crash on fixups with arithmetic, emit a relocation instead. This matches what as does.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@137414 91177308-0d34-0410-b5e6-96231b3b80d8
2011-08-12 01:51:29 +00:00
NAKAMURA Takumi
b43b09eef5
include/llvm/Config/llvm-config.h: Reorder and reword to follow (generated) config.h.in.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@137413 91177308-0d34-0410-b5e6-96231b3b80d8
2011-08-12 01:50:50 +00:00
NAKAMURA Takumi
4362c6225e
configure: Update since r136721.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@137412 91177308-0d34-0410-b5e6-96231b3b80d8
2011-08-12 01:50:43 +00:00
Eli Friedman
d577a0669b
Fix up this paragraph (including a nasty typo).
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@137408 91177308-0d34-0410-b5e6-96231b3b80d8
2011-08-12 01:26:06 +00:00
Andrew Trick
32a183c84a
findDeadCallerSavedReg fix: Missing NULL terminator in register arrays.
...
Fix by Ivan Baev. Sorry I don't have a unit test, but the fix is obvious so I don't want to delay it.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@137404 91177308-0d34-0410-b5e6-96231b3b80d8
2011-08-12 00:49:19 +00:00
Andrew Trick
a1b953b61a
Clarify the definition of SequentiallyConsistent operations.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@137403 91177308-0d34-0410-b5e6-96231b3b80d8
2011-08-12 00:36:38 +00:00
Dan Gohman
126a54f1fa
Don't convert objc_autoreleaseReturnValue to objc_autorelease if the result
...
is returned through a bitcast.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@137402 91177308-0d34-0410-b5e6-96231b3b80d8
2011-08-12 00:36:31 +00:00
Nick Lewycky
2fc75d5d60
A virtual destructor for the class with virtual methods!
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@137400 91177308-0d34-0410-b5e6-96231b3b80d8
2011-08-12 00:32:15 +00:00
Dan Gohman
a7f7db2ebd
Don't let arbitrary calls disrupt nested retain+release pairs if
...
the retains and releases all use the same SSA pointer value.
Also, don't let CFG hazards disrupt nested retain+release pair
optimizations.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@137399 91177308-0d34-0410-b5e6-96231b3b80d8
2011-08-12 00:26:31 +00:00
Dan Gohman
d8e48c4821
Use an actual reverse-CFG reverse-postorder for the bottom-up traversal,
...
rather than plain postorder, so that CFG constructs like single-exit loops
are reliably visited in a sensible order.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@137398 91177308-0d34-0410-b5e6-96231b3b80d8
2011-08-12 00:24:29 +00:00
Jakob Stoklund Olesen
9b7ff12dd1
Simplify the interference checking code a bit.
...
This is possible now that we now longer provide an interface to iterate
the interference overlaps.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@137397 91177308-0d34-0410-b5e6-96231b3b80d8
2011-08-12 00:22:04 +00:00
Jim Grosbach
29e7b7deb4
Clean up formatting a bit.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@137393 91177308-0d34-0410-b5e6-96231b3b80d8
2011-08-11 23:57:17 +00:00