Nadav Rotem [Fri, 12 Apr 2013 00:48:32 +0000 (00:48 +0000)]
Add a flag to align all basic blocks in the function.
When debugging performance regressions we often ask ourselves if the regression
that we see is due to poor isel/sched/ra or due to some micro-architetural
problem. When comparing two code sequences one good way to rule out front-end
bottlenecks (and other the issues) is to force code alignment. This pass adds
a flag that forces the alignment of all of the basic blocks in the program.
llvm-svn: 179353
Jordan Rose [Fri, 12 Apr 2013 00:44:24 +0000 (00:44 +0000)]
[analyzer] Fix grammar in comment.
By Adam Schnitzer!
llvm-svn: 179352
Jordan Rose [Fri, 12 Apr 2013 00:44:17 +0000 (00:44 +0000)]
[analyzer] Show "Returning from ..." note at caller's depth, not callee's.
Before:
1. Calling 'foo'
2. Doing something interesting
3. Returning from 'foo'
4. Some kind of error here
After:
1. Calling 'foo'
2. Doing something interesting
3. Returning from 'foo'
4. Some kind of error here
The location of the note is already in the caller, not the callee, so this
just brings the "depth" attribute in line with that.
This only affects plist diagnostic consumers (i.e. Xcode). It's necessary
for Xcode to associate the control flow arrows with the right stack frame.
<rdar://problem/
13634363>
llvm-svn: 179351
Jordan Rose [Fri, 12 Apr 2013 00:44:01 +0000 (00:44 +0000)]
[analyzer] Don't emit extra context arrow after returning from an inlined call.
In this code
int getZero() {
return 0;
}
void test() {
int problem = 1 / getZero(); // expected-warning {{Division by zero}}
}
we generate these arrows:
+-----------------+
| v
int problem = 1 / getZero();
^ |
+---+
where the top one represents the control flow up to the first call, and the
bottom one represents the flow to the division.* It turns out, however, that
we were generating the top arrow twice, as if attempting to "set up context"
after we had already returned from the call. This resulted in poor
highlighting in Xcode.
* Arguably the best location for the division is the '/', but that's a
different problem.
<rdar://problem/
13326040>
llvm-svn: 179350
Rafael Espindola [Fri, 12 Apr 2013 00:32:20 +0000 (00:32 +0000)]
Remove REQUIRES now that r179237 fixed the real problem.
llvm-svn: 179349
Jason Molenda [Fri, 12 Apr 2013 00:23:57 +0000 (00:23 +0000)]
Change the default for PlatformDarwinKernel to be enabled a la
settings set platform.plugin.darwin-kernel.search-locally-for-kexts true
llvm-svn: 179348
Douglas Gregor [Fri, 12 Apr 2013 00:23:25 +0000 (00:23 +0000)]
Make sure we have the include paths we need
llvm-svn: 179347
Douglas Gregor [Fri, 12 Apr 2013 00:18:53 +0000 (00:18 +0000)]
<rdar://problem/
13615607> Include SDK version information in the module hash.
This is a Darwin-SDK-specific hash criteria used to identify a
particular SDK without having to hash the contents of all of its
headers. If other platforms have such versioned files, we should add
those checks here.
llvm-svn: 179346
Rafael Espindola [Fri, 12 Apr 2013 00:17:33 +0000 (00:17 +0000)]
Add 179294 back, but don't use bit fields so that it works on big endian hosts.
Original message:
Print more information about relocations.
With this patch llvm-readobj now prints if a relocation is pcrel, its length,
if it is extern and if it is scattered.
It also refactors the code a bit to use bit fields instead of shifts and
masks all over the place.
llvm-svn: 179345
Chad Rosier [Thu, 11 Apr 2013 23:57:29 +0000 (23:57 +0000)]
Add test case for r179343.
llvm-svn: 179344
Chad Rosier [Thu, 11 Apr 2013 23:57:04 +0000 (23:57 +0000)]
[ms-inline asm] Add support for using the LENGTH, TYPE, and SIZE operators with
variables that use namespace alias qualifiers. Test case coming on clang side
shortly.
Part of rdar://
13499009
llvm-svn: 179343
Enrico Granata [Thu, 11 Apr 2013 23:48:00 +0000 (23:48 +0000)]
New test suite option (-T)
When -T is specified, the test suite will call svn info and dump the output on screen (this used to be the default behavior)
When -T is not specified, this step won't be performed (the new default)
llvm-svn: 179342
Enrico Granata [Thu, 11 Apr 2013 23:40:59 +0000 (23:40 +0000)]
When specifying a relative path for the --framework option to dotest.py, Python would end up being confused and unable to locate the embedded_interpreter module, causing every testcase that uses the Script Interpreter (e.g. functionalities/data-formatter/data-formatter-stl/libstdcpp) to fail without even trying
This checkin fixes that problem by absolutizing the path before pushing it to the sys.path
llvm-svn: 179341
Chad Rosier [Thu, 11 Apr 2013 23:37:53 +0000 (23:37 +0000)]
Test case for r179339.
llvm-svn: 179340
Chad Rosier [Thu, 11 Apr 2013 23:37:34 +0000 (23:37 +0000)]
[ms-inline asm] Add support for using offsetof operator with variables that use
namespace alias qualifiers. Test case coming on clang side shortly.
Part of rdar://
13499009
llvm-svn: 179339
John McCall [Thu, 11 Apr 2013 23:25:27 +0000 (23:25 +0000)]
Flail at trying to appease various linuxy buildbots.
llvm-svn: 179338
Manman Ren [Thu, 11 Apr 2013 23:24:18 +0000 (23:24 +0000)]
Aliasing rules for struct-path aware TBAA.
Added PathAliases to check if two struct-path tags can alias.
Added command line option -struct-path-tbaa.
llvm-svn: 179337
Chad Rosier [Thu, 11 Apr 2013 23:24:15 +0000 (23:24 +0000)]
[ms-inline asm] Pass a StringRef reference to ParseIntelVarWithQualifier so we
can build up the identifier string. No test case as support for looking up
these type of identifiers hasn't been implemented on the clang side.
Part of rdar://
13499009
llvm-svn: 179336
Manman Ren [Thu, 11 Apr 2013 23:02:56 +0000 (23:02 +0000)]
Struct-path aware TBAA: uniformize scalar tag and path tag.
For struct-path aware TBAA, we used to use scalar type node as the scalar tag,
which has an incompatible format with the struct path tag. We now use the same
format: base type, access type and offset.
We also uniformize the scalar type node and the struct type node: name, a list
of pairs (offset + pointer to MDNode). For scalar type, we have a single pair.
These are to make implementaiton of aliasing rules easier.
llvm-svn: 179335
John McCall [Thu, 11 Apr 2013 22:55:55 +0000 (22:55 +0000)]
Fix the driver logic for recent versions of DragonFly.
Patch by John Marino.
llvm-svn: 179334
Enrico Granata [Thu, 11 Apr 2013 22:55:45 +0000 (22:55 +0000)]
<rdar://problem/
13558484>
This makes the dynamic values test case work for both libc++ and libstdcpp
llvm-svn: 179333
Jim Ingham [Thu, 11 Apr 2013 22:53:47 +0000 (22:53 +0000)]
Save away the locations at the site we hit and iterate over that collection. Otherwise the action of one location
could delete the other locations, and that would leave us iterating over a reduced size collection and crash.
<rdar://problem/
13592544>
llvm-svn: 179332
Manman Ren [Thu, 11 Apr 2013 22:51:30 +0000 (22:51 +0000)]
TBAA: add utility to create a TBAA scalar type node
llvm-svn: 179331
Enrico Granata [Thu, 11 Apr 2013 22:48:58 +0000 (22:48 +0000)]
<rdar://problem/
13623698>
This patch fixes the issue that we were using the C stack as a measure of depth of ValueObject hierarchies, in the sense that we were assuming that recursive ValueObject operations would never be deeper than the stack allows.
This assumption is easy to prove wrong, however.
For instance, after ~10k runs through this loop:
struct node
{
int value;
node* child;
node (int x)
{
value = x;
child = nullptr;
}
};
int main ()
{
node root(1);
node* ptr = &root;
int j = 2;
while (1)
{
ptr->child = new node(j++);
ptr = ptr->child;
}
return 0;
}
the deepmost child object will be deeper than the stack on most architectures, and we would be unable to display it
This checkin fixes the issue by introducing a notion of root of ValueObject hierarchies.
In a couple cases, we have to use an iterative algorithm instead of going to the root because we want to allow deeper customizations (e.g. formats, dynamic values).
While the patch passes our test suite without regressions, it is a good idea to keep eyes open for any unexpected behavior (recursion can be subtle..)
Also, I am hesitant to introduce a test case since failing at this will not just be marked as an "F", but most definitely crash LLDB.
llvm-svn: 179330
Greg Clayton [Thu, 11 Apr 2013 22:26:47 +0000 (22:26 +0000)]
<rdar://problem/
13370286>
Fixed a case there the OperatingSystemPython would try to access and play with SBValue objects when the process' public run lock was taken. Prior to this fix, all attempts to run any SBValue functions would fail if run from the private state thread (like updating the thread list). Now we have two run locks, one for public (all threads except the private state thread) and one for private.
llvm-svn: 179329
Greg Clayton [Thu, 11 Apr 2013 22:24:51 +0000 (22:24 +0000)]
Use std::unique_ptr instead of std::auto_ptr.
llvm-svn: 179328
Greg Clayton [Thu, 11 Apr 2013 22:24:25 +0000 (22:24 +0000)]
Fixed SBValueList to have a __str__ function like all other SB classes. Previously this was done as __repr__.
llvm-svn: 179327
Greg Clayton [Thu, 11 Apr 2013 22:23:34 +0000 (22:23 +0000)]
Fixed the thread list so it correctly updates after the first core thread exists.
llvm-svn: 179326
Chad Rosier [Thu, 11 Apr 2013 22:00:03 +0000 (22:00 +0000)]
[ms-inline asm] Add a new AsmRewriteKind, AOK_Delete. To be used in a future
commit.
Part of rdar://
13453209
llvm-svn: 179325
Chad Rosier [Thu, 11 Apr 2013 21:49:48 +0000 (21:49 +0000)]
Update test case for r179323.
llvm-svn: 179324
Chad Rosier [Thu, 11 Apr 2013 21:49:30 +0000 (21:49 +0000)]
[ms-inline asm] Remove brackets from around a symbol reference in the target
specific logic. This makes the code much less fragile. Test case coming on the
clang side in a moment.
rdar://
13634327
llvm-svn: 179323
Preston Gurd [Thu, 11 Apr 2013 21:39:01 +0000 (21:39 +0000)]
Use FileCheck instead of grep.
llvm-svn: 179322
Sean Callanan [Thu, 11 Apr 2013 21:16:36 +0000 (21:16 +0000)]
Hand over the job of laying out the argument structure
to the Materializer. Materialization is still done by
the ClangExpressionDeclMap; this will be the next thing
to move.
Also fixed a layout bug that this uncovered.
llvm-svn: 179318
David Majnemer [Thu, 11 Apr 2013 20:13:52 +0000 (20:13 +0000)]
Fix undefined behavior in AArch64
A64Imms::isLogicalImmBits and A64Imms::isLogicalImm will attempt to
execute shifts that perform undefined behavior. Instead of attempting
to perform the 64-bit rotation, treat it as a no-op.
llvm-svn: 179317
David Majnemer [Thu, 11 Apr 2013 20:05:46 +0000 (20:05 +0000)]
Optimize icmp involving addition better
Allows LLVM to optimize sequences like the following:
%add = add nsw i32 %x, 1
%cmp = icmp sgt i32 %add, %y
into:
%cmp = icmp sge i32 %x, %y
as well as:
%add1 = add nsw i32 %x, 20
%add2 = add nsw i32 %y, 57
%cmp = icmp sge i32 %add1, %add2
into:
%add = add nsw i32 %y, 37
%cmp = icmp sle i32 %cmp, %x
llvm-svn: 179316
Jack Carter [Thu, 11 Apr 2013 19:39:19 +0000 (19:39 +0000)]
Mips specific inline asm memory operand modifier test case
These changes are based on commit responses for r179135.
llvm-svn: 179315
Akira Hatanaka [Thu, 11 Apr 2013 19:29:26 +0000 (19:29 +0000)]
[mips] Custom-lower i64 MULHS and MULHU nodes. Remove the code which selects
multiply instructions in MipsSEDAGToDAGISel.
This patch was supposed to be part of r178403.
llvm-svn: 179314
Akira Hatanaka [Thu, 11 Apr 2013 19:07:14 +0000 (19:07 +0000)]
[mips] Clean up MipsISelDAGToDAG.cpp and MipsISelLowering.cpp.
- Rename function.
- Pass iterator by value.
- Remove header include.
No functionality changes.
llvm-svn: 179312
Reid Kleckner [Thu, 11 Apr 2013 19:01:17 +0000 (19:01 +0000)]
Widen the checks in the ms abi memptr test to work under NDEBUG
llvm-svn: 179311
Jyotsna Verma [Thu, 11 Apr 2013 18:56:34 +0000 (18:56 +0000)]
Exclude test30 of Sema/return.c for Hexagon since setjmp.h include file
is unavailable for Hexagon.
llvm-svn: 179310
Bob Wilson [Thu, 11 Apr 2013 18:53:25 +0000 (18:53 +0000)]
Add a new -mimplicit-float option for symmetry with -mno-implicit-float.
This new option is the default, but it is useful to have a flag to override
-mno-implicit-float by putting -mimplicit-float later on the command line.
llvm-svn: 179309
Reid Kleckner [Thu, 11 Apr 2013 18:39:10 +0000 (18:39 +0000)]
Follow Jordan's advice and use {{^}} and {{$}} for this test
This is a better way of ensuring that we match the output of the
rewriter and not the CHECK line.
llvm-svn: 179308
Kostya Serebryany [Thu, 11 Apr 2013 18:36:04 +0000 (18:36 +0000)]
[asan] inline flags(), up to 1% perf gain on malloc-intensive code
llvm-svn: 179307
Kostya Serebryany [Thu, 11 Apr 2013 18:27:02 +0000 (18:27 +0000)]
[asan] make heavy_uar_test even heavier
llvm-svn: 179306
Reid Kleckner [Thu, 11 Apr 2013 18:13:19 +0000 (18:13 +0000)]
[ms-cxxabi] Implement member pointer emission and dereferencing
Summary:
Handles all inheritance models for both data and function member
pointers.
Also implements isZeroInitializable() and refactors some of the null
member pointer code.
MSVC supports converting member pointers through virtual bases, which
clang does not (yet?) support. Implementing that extension is covered
by http://llvm.org/15713
Reviewers: rjmccall
CC: cfe-commits
Differential Revision: http://llvm-reviews.chandlerc.com/D613
llvm-svn: 179305
Sean Callanan [Thu, 11 Apr 2013 17:57:16 +0000 (17:57 +0000)]
Handle C++ static variables in the expression
parser.
<rdar://problem/
13631469>
llvm-svn: 179304
Rafael Espindola [Thu, 11 Apr 2013 17:46:10 +0000 (17:46 +0000)]
Revert my last two commits while I debug what is wrong in a big endian host.
llvm-svn: 179303
Argyrios Kyrtzidis [Thu, 11 Apr 2013 17:37:48 +0000 (17:37 +0000)]
[PCH] Change test/PCH/headersearch.cpp to use -emit-llvm-only instead of -emit-obj
llvm-svn: 179301
Argyrios Kyrtzidis [Thu, 11 Apr 2013 17:31:13 +0000 (17:31 +0000)]
[libclang] Improve a doxygen comment, as suggested by Jordan.
llvm-svn: 179300
Jyotsna Verma [Thu, 11 Apr 2013 17:27:18 +0000 (17:27 +0000)]
Hexagon: Remove -g option from the assembler command line.
llvm-svn: 179299
Rafael Espindola [Thu, 11 Apr 2013 17:23:23 +0000 (17:23 +0000)]
Fix llvm-readobj tests on big endian hosts.
llvm-svn: 179298
Argyrios Kyrtzidis [Thu, 11 Apr 2013 17:02:10 +0000 (17:02 +0000)]
[libclang] Have clang_getCXXAccessSpecifier() also return the access control of a C++ declaration within its parent scope.
Suggested by Stefan Seefeld.
llvm-svn: 179297
Greg Clayton [Thu, 11 Apr 2013 16:57:51 +0000 (16:57 +0000)]
Static variables inside classes were not being added to the RecordDecl, now they are. This gets us closer to being able to display static variables in classes.
llvm-svn: 179296
Sylvestre Ledru [Thu, 11 Apr 2013 16:32:47 +0000 (16:32 +0000)]
cmake build of lldb was complaining about missing files.
Example:
CMake Error at cmake/modules/LLVMProcessSources.cmake:89 (message):
Found unknown source file
/llvm-toolchain-3.3~svn179293.cmake/tools/lldb/source/Plugins/Platform/MacOSX/PlatformDarwinKernel.cpp
llvm-svn: 179295
Rafael Espindola [Thu, 11 Apr 2013 16:31:37 +0000 (16:31 +0000)]
Print more information about relocations.
With this patch llvm-readobj now prints if a relocation is pcrel, its length,
if it is extern and if it is scattered.
It also refactors the code a bit to use bit fields instead of shifts and
masks all over the place.
llvm-svn: 179294
Alexey Samsonov [Thu, 11 Apr 2013 15:49:52 +0000 (15:49 +0000)]
Explicitly list all sanitizer headers in CMake build rules. Make sure sanitizer lit_tests depend on fresh headers.
llvm-svn: 179293
Kostya Serebryany [Thu, 11 Apr 2013 15:35:40 +0000 (15:35 +0000)]
[asan] improve the UAR reporting (try harder to find the correct frame), try to make the test more stable
llvm-svn: 179292
Benjamin Kramer [Thu, 11 Apr 2013 15:10:09 +0000 (15:10 +0000)]
Fix for wrong instcombine on vector insert/extract
When trying to collapse sequences of insertelement/extractelement
instructions into single shuffle instructions, there is one specific
case where the Instruction Combiner wrongly updates the resulting
Mask of shuffle indexes.
The problem is in function CollectShuffleElments.
If we have a sequence of insert/extract element instructions
like the one below:
%tmp1 = extractelement <4 x float> %LHS, i32 0
%tmp2 = insertelement <4 x float> %RHS, float %tmp1, i32 1
%tmp3 = extractelement <4 x float> %RHS, i32 2
%tmp4 = insertelement <4 x float> %tmp2, float %tmp3, i32 3
Where:
. %RHS will have a mask of [4,5,6,7]
. %LHS will have a mask of [0,1,2,3]
The Mask of shuffle indexes is wrongly computed to [4,1,6,7]
instead of [4,0,6,7].
When analyzing %tmp2 in order to compute the Mask for the
resulting shuffle instruction, the algorithm forgets to update
the mask index at position 1 with the index associated to the
element extracted from %LHS by instruction %tmp1.
Patch by Andrea DiBiagio!
llvm-svn: 179291
Eli Bendersky [Thu, 11 Apr 2013 14:43:19 +0000 (14:43 +0000)]
Add a CHECK-NOT for a more faithful translation of the original grep | count 2.
Thanks to Reid Kleckner for catching this.
llvm-svn: 179289
Evgeniy Stepanov [Thu, 11 Apr 2013 14:37:04 +0000 (14:37 +0000)]
[sanitizer] Syscall hooks.
Pre- and post- hooks for linux syscalls. Not wired into anything, but exposed
through public interface.
llvm-svn: 179288
Daniel Jasper [Thu, 11 Apr 2013 14:29:13 +0000 (14:29 +0000)]
Change clang-format's affinity for breaking after return types.
Function declarations are now broken with the following preferences:
1) break amongst arguments.
2) break after return type.
3) break after (.
4) break before after nested name specifiers.
Options #2 or #3 are preferred over #1 only if a substantial number of
lines can be saved by that.
llvm-svn: 179287
Kostya Serebryany [Thu, 11 Apr 2013 14:07:02 +0000 (14:07 +0000)]
[asan] make heavy_uar_test a bit more heavy and fix he fake stack to pass this test
llvm-svn: 179286
Rafael Espindola [Thu, 11 Apr 2013 14:06:34 +0000 (14:06 +0000)]
Add a function to check if an argument list is too long.
This will be used in clang to decide if it should create an @file or not. It
will be tested on the clang side.
Patch by Nathan Froyd.
llvm-svn: 179285
Reid Kleckner [Thu, 11 Apr 2013 13:43:19 +0000 (13:43 +0000)]
Fix failing dependencies-and-pp.c test
The bots seem to do more line wrapping because they have longer absolute
paths.
llvm-svn: 179284
Reid Kleckner [Thu, 11 Apr 2013 13:34:18 +0000 (13:34 +0000)]
Use lit's internal shell runner on Windows for Clang tests
The behavior can be overridden by setting LIT_USE_INTERNAL_SHELL=0 in
the environment.
This fixes issues with /dev/null for me and brings the test suite time
down to 30s. =D
llvm-svn: 179283
Reid Kleckner [Thu, 11 Apr 2013 13:24:56 +0000 (13:24 +0000)]
FileCheck-ify more grep tests with quoted double quotes
This required some tedious reordering to match clang's order.
Presumably these ObjC tests were generated based on llvm-gcc's output
ordering.
llvm-svn: 179282
Alexey Samsonov [Thu, 11 Apr 2013 13:21:41 +0000 (13:21 +0000)]
[ASan] test source-based init-order blacklisting added in r179280
llvm-svn: 179281
Alexey Samsonov [Thu, 11 Apr 2013 13:20:00 +0000 (13:20 +0000)]
[ASan] Allow disabling init-order checks for globals by source file name.
llvm-svn: 179280
Sylvestre Ledru [Thu, 11 Apr 2013 13:15:39 +0000 (13:15 +0000)]
Add myself in the CREDITS.TXT
llvm-svn: 179279
Kostya Serebryany [Thu, 11 Apr 2013 12:49:38 +0000 (12:49 +0000)]
[asan] fix use-after-return functionality (PR15672) and enable the corresponding test. We still don't guarantee anything with regard to use-after-return checking
llvm-svn: 179278
Benjamin Kramer [Thu, 11 Apr 2013 12:41:41 +0000 (12:41 +0000)]
Add missing colons to check lines.
llvm-svn: 179277
Benjamin Kramer [Thu, 11 Apr 2013 12:32:23 +0000 (12:32 +0000)]
FileCheckize a bunch of tests.
llvm-svn: 179276
Benjamin Kramer [Thu, 11 Apr 2013 11:57:01 +0000 (11:57 +0000)]
Add braces around || in && to pacify GCC.
llvm-svn: 179275
Alexey Samsonov [Thu, 11 Apr 2013 11:45:04 +0000 (11:45 +0000)]
[ASan] Symbolize correct address when printint error summary
llvm-svn: 179274
Kostya Serebryany [Thu, 11 Apr 2013 11:39:19 +0000 (11:39 +0000)]
[asan] move fake stack into a separate .h file; actually disable a failing test
llvm-svn: 179273
Benjamin Kramer [Thu, 11 Apr 2013 11:36:36 +0000 (11:36 +0000)]
Rename the C function to create a SLPVectorizerPass to something sane and expose it in the header file.
llvm-svn: 179272
Kostya Serebryany [Thu, 11 Apr 2013 11:29:07 +0000 (11:29 +0000)]
[asan] add heavy_uar_test (disabled); fix lint
llvm-svn: 179271
Daniel Jasper [Thu, 11 Apr 2013 08:48:20 +0000 (08:48 +0000)]
Fix formatting of overloaded assignment operators.
Before: SomeType &operator=(const SomeType & S);
After: SomeType &operator=(const SomeType &S);
llvm-svn: 179270
Ryan Govostes [Thu, 11 Apr 2013 06:04:50 +0000 (06:04 +0000)]
[analyzer] Factor common code from {SymSym,SymInt,IntSym}Expr to BinarySymExpr
llvm-svn: 179269
Tobias Grosser [Thu, 11 Apr 2013 05:55:13 +0000 (05:55 +0000)]
ScheduleOptimizer: Use isl_map_from_union_map to extract map.
llvm-svn: 179268
Michael Liao [Thu, 11 Apr 2013 05:15:54 +0000 (05:15 +0000)]
Optimize vector select from all 0s or all 1s
As packed comparisons in AVX/SSE produce all 0s or all 1s in each SIMD lane,
vector select could be simplified to AND/OR or removed if one or both values
being selected is all 0s or all 1s.
llvm-svn: 179267
Michael Liao [Thu, 11 Apr 2013 04:52:28 +0000 (04:52 +0000)]
Add CLAC/STAC instruction encoding/decoding support
As these two instructions in AVX extension are privileged instructions for
special purpose, it's only expected to be used in inlined assembly.
llvm-svn: 179266
Michael Liao [Thu, 11 Apr 2013 04:43:09 +0000 (04:43 +0000)]
Enhance bool simplifcation in X86 to handle more cases
This patch is revised based on patch from Victor Umansky
<victor.umansky@intel.com>. More cases are handled in X86's bool
simplification, i.e.
- SETCC_CARRY
- value is truncated to i1 with AND
As a by-product, PR5443 is also fixed.
llvm-svn: 179265
Shankar Easwaran [Thu, 11 Apr 2013 04:20:21 +0000 (04:20 +0000)]
[test] missing underscore while checking for test output
llvm-svn: 179264
NAKAMURA Takumi [Thu, 11 Apr 2013 04:16:27 +0000 (04:16 +0000)]
R600ControlFlowFinalizer.cpp: Fix a warning. [-Wunused-variable]
llvm-svn: 179263
NAKAMURA Takumi [Thu, 11 Apr 2013 04:16:22 +0000 (04:16 +0000)]
Whitespace.
llvm-svn: 179262
NAKAMURA Takumi [Thu, 11 Apr 2013 04:16:11 +0000 (04:16 +0000)]
ARCMigrate/Transforms.h: Remove \arg in comment. [-Wdocumentation]
llvm-svn: 179261
Shankar Easwaran [Thu, 11 Apr 2013 04:08:11 +0000 (04:08 +0000)]
[test] fix failing test, the test was not accounting for - in the path
llvm-svn: 179260
Rafael Espindola [Thu, 11 Apr 2013 03:34:37 +0000 (03:34 +0000)]
Simplify the code. No functionality change.
llvm-svn: 179259
Jason Molenda [Thu, 11 Apr 2013 03:14:01 +0000 (03:14 +0000)]
Change the disassemble option to specify the architecture from '-a'
to '-A'.
Add option '-a' / '--address' to disassemble which will find the
function that contains that address, and disassemble the entire function.
<rdar://problem/
13436207>
llvm-svn: 179258
Shankar Easwaran [Thu, 11 Apr 2013 02:56:30 +0000 (02:56 +0000)]
This adds functionality for undefined atoms from dynamic libraries to be added
to the list of undefined atoms.
The processing of undefined atoms from dynamic libraries is controlled by
use-shlib-undefines command line option.
This patch also adds additional command line arguments to allow/disallow
unresolved symbols from shared libraries and mimics GNU ld behavior.
llvm-svn: 179257
Rafael Espindola [Thu, 11 Apr 2013 02:52:29 +0000 (02:52 +0000)]
Add MachO-x86-64 tests.
The object was already checked in, but was not being tested.
llvm-svn: 179256
Rafael Espindola [Thu, 11 Apr 2013 02:21:31 +0000 (02:21 +0000)]
Fix MachO's getRelocationAdditionalInfo.
It was returning the loaded address of the section containing the relocation,
which really doesn't seem to be the intent of this function.
llvm-svn: 179255
John McCall [Thu, 11 Apr 2013 02:14:26 +0000 (02:14 +0000)]
Drop ObjCIndirectCopyRestoreExprs during template instantiation.
It's a kind of implicit conversion, which we generally drop, but
more importantly it's got very specific placement requirements.
rdar://
13617051
llvm-svn: 179254
Sean Callanan [Thu, 11 Apr 2013 02:05:11 +0000 (02:05 +0000)]
Changed the way ClangExpressionDeclMap registers
entities with the new Materializer so that it only
registers those entities that actually need to be
placed in the struct.
llvm-svn: 179253
Hal Finkel [Thu, 11 Apr 2013 01:23:34 +0000 (01:23 +0000)]
Make PPCInstrInfo::isPredicated always return false
Because of how predication in implemented on PPC (only for branches), I think
that this is the right thing to do. No functionality change intended.
llvm-svn: 179252
Argyrios Kyrtzidis [Thu, 11 Apr 2013 01:20:11 +0000 (01:20 +0000)]
[libclang] Expose record layout info via new libclang functions:
clang_Type_getAlignOf
clang_Type_getSizeOf
clang_Type_getOffsetOf
clang_Cursor_isBitField
Patch by Loïc Jaquemet!
llvm-svn: 179251
Jordan Rose [Thu, 11 Apr 2013 00:58:58 +0000 (00:58 +0000)]
Force a load when creating a reference to a temporary copied from a bitfield.
For this source:
const int &ref = someStruct.bitfield;
We used to generate this AST:
DeclStmt [...]
`-VarDecl [...] ref 'const int &'
`-MaterializeTemporaryExpr [...] 'const int' lvalue
`-ImplicitCastExpr [...] 'const int' lvalue <NoOp>
`-MemberExpr [...] 'int' lvalue bitfield .bitfield [...]
`-DeclRefExpr [...] 'struct X' lvalue ParmVar [...] 'someStruct' 'struct X'
Notice the lvalue inside the MaterializeTemporaryExpr, which is very
confusing (and caused an assertion to fire in the analyzer - PR15694).
We now generate this:
DeclStmt [...]
`-VarDecl [...] ref 'const int &'
`-MaterializeTemporaryExpr [...] 'const int' lvalue
`-ImplicitCastExpr [...] 'int' <LValueToRValue>
`-MemberExpr [...] 'int' lvalue bitfield .bitfield [...]
`-DeclRefExpr [...] 'struct X' lvalue ParmVar [...] 'someStruct' 'struct X'
Which makes a lot more sense. This allows us to remove code in both
CodeGen and AST that hacked around this special case.
The commit also makes Clang accept this (legal) C++11 code:
int &&ref = std::move(someStruct).bitfield
PR15694 / <rdar://problem/
13600396>
llvm-svn: 179250
Daniel Dunbar [Thu, 11 Apr 2013 00:31:35 +0000 (00:31 +0000)]
lit: Don't descend into .git directories during test discovery.
llvm-svn: 179249
Daniel Dunbar [Thu, 11 Apr 2013 00:31:27 +0000 (00:31 +0000)]
lit: Shorten a metavar to make --help look nicer.
llvm-svn: 179248