| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
|
|
| |
// rdar://11374235
llvm-svn: 156552
|
|
|
|
| |
llvm-svn: 156551
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This patch will optimize the following cases:
sub r1, r3 | sub r1, imm
cmp r3, r1 or cmp r1, r3 | cmp r1, imm
bge L1
TO
subs r1, r3
bge L1 or ble L1
If the branch instruction can use flag from "sub", then we can replace
"sub" with "subs" and eliminate the "cmp" instruction.
rdar: 10734411
llvm-svn: 156550
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Instruction::IsIdenticalToWhenDefined.
This manifested itself when inlining two calls to the same function. The
inlined function had a switch statement that returned one of a set of
global variables. Without this modification, the two phi instructions that
chose values from the branches of the switch instruction inlined from the
callee were considered equivalent and jump-threading replaced a load for the
first switch value with a phi selecting from the second switch, thereby
producing incorrect code.
This patch has been tested with "make check-all", "lnt runteste nt", and
llvm self-hosted, and on the original program that had this problem,
wireshark.
<rdar://problem/11025519>
llvm-svn: 156548
|
|
|
|
|
|
| |
assembly code of the hot functions
llvm-svn: 156547
|
|
|
|
| |
llvm-svn: 156546
|
|
|
|
| |
llvm-svn: 156545
|
|
|
|
|
|
| |
now)
llvm-svn: 156544
|
|
|
|
| |
llvm-svn: 156543
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Algorithm description: http://code.google.com/p/thread-sanitizer/wiki/ThreadSanitizerAlgorithm
Status:
The tool is known to work on large real-life applications, but still has quite a few rough edges.
Nothing is guaranteed yet.
The tool works on x86_64 Linux.
Support for 64-bit MacOS 10.7+ is planned for late 2012.
Support for 32-bit OSes is doable, but problematic and not yet planed.
Further commits coming:
- tests
- makefiles
- documentation
- clang driver patch
The code was previously developed at http://code.google.com/p/data-race-test/source/browse/trunk/v2/
by Dmitry Vyukov and Kostya Serebryany with contributions from
Timur Iskhodzhanov, Alexander Potapenko, Alexey Samsonov and Evgeniy Stepanov.
llvm-svn: 156542
|
|
|
|
| |
llvm-svn: 156541
|
|
|
|
| |
llvm-svn: 156540
|
|
|
|
|
|
|
|
|
|
| |
the program.
Starting r155461 we are able to select patterns for vbroadcast even when the load op is used by other users.
Fix PR11900.
llvm-svn: 156539
|
|
|
|
|
|
| |
size_t).
llvm-svn: 156538
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
from the frontend when the location is invalid and the SourceManager null.
Instead of keeping the SourceManager object in DiagnosticRenderer, propagate it
to the calls accordingly (as reference when it is expected to not be null, or pointer
when it may be null).
This effectively makes DiagnosticRenderer not tied to a specific SourceManager,
removing a hack from TextDiagnosticPrinter.
rdar://11386874
llvm-svn: 156536
|
|
|
|
|
|
| |
Fixed a case where the install header phase in the Xcode project would not set the LLDB_VERSION #define correctly. It has now been fixed to key off of the CURRENT_PROJECT_VERSION which will get auto updated with "agvtool bump -all". This was done by adding a build setting to the install-headers makefile based target.
llvm-svn: 156535
|
|
|
|
| |
llvm-svn: 156534
|
|
|
|
| |
llvm-svn: 156533
|
|
|
|
|
|
|
|
|
|
|
|
| |
Fixed the DisassemblerLLVMC disassembler to parse more efficiently instead of parsing opcodes over and over. The InstructionLLVMC class now only reads the opcode in the InstructionLLVMC::Decode function. This can be done very efficiently for ARM and architectures that have fixed opcode sizes. For x64 it still calls the disassembler to get the byte size.
Moved the lldb_private::Instruction::Dump(...) function up into the lldb_private::Instruction class and it now uses the function that gets the mnemonic, operandes and comments so that all disassembly is using the same code.
Added StreamString::FillLastLineToColumn() to allow filling a line up to a column with a character (which is used by the lldb_private::Instruction::Dump(...) function).
Modified the Opcode::GetData() fucntion to "do the right thing" for thumb instructions.
llvm-svn: 156532
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
// FIXME: This needs to happen before we merge declarations. Then,
// let attribute merging cope with attribute conflicts.
This was already being done for variables, but for functions we were merging
then first and then applying the attributes. To avoid duplicating merging
logic, some of the helpers in SemaDeclAttr.cpp become methods that can
handle merging two attributes in one decl or inheriting attributes from one
decl to another.
With this change we are now able to produce errors for variables with
incompatible visibility attributes or warn about unused dllimports in
variables.
This changes the attribute list iteration back to being in reverse source
code order, as that matches what decl merging does and avoids differentiating
the two cases is the merge*Attr methods.
llvm-svn: 156531
|
|
|
|
|
|
|
|
|
|
| |
We report a leak at a point a leaked variable is no longer accessible.
The statement that happens to be at that point is not relevant to the
leak diagnostic and, thus, should not be highlighted.
radar://11178519
llvm-svn: 156530
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
propagate the error back to
the controlling plans so that they don't lose control.
Also change "ThreadPlanStepThrough" to take the return StackID for its backstop breakpoint as an argument
to the constructor rather than having it try to figure it out itself, since it might get it wrong whereas
the caller always knows where it is coming from.
rdar://problem/11402287
llvm-svn: 156529
|
|
|
|
|
|
| |
I initially assumed that the subreg graph was a tree. That may not be true.
llvm-svn: 156524
|
|
|
|
|
|
| |
Patch by Yury Mikhaylov <yury.mikhaylov@gmail.com>.
llvm-svn: 156523
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
We don't create any declaration to mark the explicit instantiation of function
templates other than the instantiation itself, so visit that when traversing
the function template decl.
This is a temporary fix, pending the creation of a Decl node to represent the
explicit instantiation.
Patch by Daniel Jasper!
llvm-svn: 156522
|
|
|
|
| |
llvm-svn: 156521
|
|
|
|
|
|
| |
end of a basic block if there's no store.
llvm-svn: 156520
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This mapping is for internal use by TableGen. It will not be exposed in
the generated files.
Unfortunately, the mapping is not completely well-defined. The X86 xmm
registers appear with multiple sub-register indices in the ymm
registers. This is because of the odd idempotent sub_sd and sub_ss
sub-register indices. I hope to be able to eliminate them entirely, so
we can require the sub-registers to form a tree.
For now, just place the canonical sub_xmm index in the mapping, and
ignore the idempotents.
llvm-svn: 156519
|
|
|
|
|
|
| |
That's what it does.
llvm-svn: 156518
|
|
|
|
|
|
|
| |
'*' on objective-c class name was misplaced.
// rdar://11311333
llvm-svn: 156517
|
|
|
|
|
|
|
| |
refactor code a bit to enable future changes to support run-time information
add support to compute allocation sizes at run-time if penalty > 1 (e.g., malloc(x), calloc(x, y), and VLAs)
llvm-svn: 156515
|
|
|
|
|
|
| |
in expressions.
llvm-svn: 156514
|
|
|
|
| |
llvm-svn: 156513
|
|
|
|
|
|
| |
-Wconditional-uninitialized into -Wuninitialized.
llvm-svn: 156512
|
|
|
|
|
|
|
|
| |
instead of the previous content.
rdar://problem/11412821
llvm-svn: 156510
|
|
|
|
| |
llvm-svn: 156509
|
|
|
|
|
|
|
| |
parser, and use it to emit better diagnostics in cases where an identifer
can't be looked up as a type name.
llvm-svn: 156508
|
|
|
|
| |
llvm-svn: 156507
|
|
|
|
|
|
| |
This bug was fixed by Jim Grosbach in #138879, thanks Jim!
llvm-svn: 156505
|
|
|
|
|
|
|
| |
Deal with being passed no parameters
Remove the infinite loop when it's passed something like --help
llvm-svn: 156504
|
|
|
|
|
|
|
| |
normal parse for token sequences like 'vector pixel foo'. This incidentally also
fixes a couple of wrong-parse issues.
llvm-svn: 156503
|
|
|
|
| |
llvm-svn: 156502
|
|
|
|
| |
llvm-svn: 156501
|
|
|
|
|
|
| |
That allows to run the tests on all platforms successfully.
llvm-svn: 156500
|
|
|
|
| |
llvm-svn: 156498
|
|
|
|
| |
llvm-svn: 156497
|
|
|
|
|
|
|
|
| |
yanked out from under us prematurely on exit.
rdar://problem/11358062
llvm-svn: 156496
|
|
|
|
|
|
| |
Also, add an anchor as per http://llvm.org/docs/CodingStandards.html#ll_virtual_anch
llvm-svn: 156495
|
|
|
|
| |
llvm-svn: 156494
|
|
|
|
| |
llvm-svn: 156493
|