Manman Ren
c965673707
X86: peephole optimization to remove cmp instruction
...
For each Cmp, we check whether there is an earlier Sub which make Cmp
redundant. We handle the case where SUB operates on the same source operands as
Cmp, including the case where the two source operands are swapped.
llvm-svn: 159838
2012-07-06 17:36:20 +00:00
Chad Rosier
88d53eae56
[fast-isel] Tell fast-isel to do nothing with the new donothing intrinsic.
...
llvm-svn: 159837
2012-07-06 17:33:39 +00:00
Howard Hinnant
4cb38a82a2
This commit establishes a new bucket_count policy in the unordered containers: The policy now allows a power-of-2 number of buckets to be requested (and that request honored) by the client. And if the number of buckets is set to a power of 2, then the constraint of the hash to the number of buckets uses & instead of %. If the client does not specify a number of buckets, then the policy remains unchanged: a prime number of buckets is selected. The growth policy is that the number of buckets is roughly doubled when needed. While growing, either the prime, or the power-of-2 strategy will be preserved. There is a small run time cost for putting in this switch. For very cheap hash functions, e.g. identity for int, the cost can be as high as 18%. However with more typical use cases, e.g. strings, the cost is in the noise level. I've measured cases with very cheap hash functions (int) that using a power-of-2 number of buckets can make look up about twice as fast. However I've also noted that a power-of-2 number of buckets is more susceptible to accidental catastrophic collisions. Though I've also noted that accidental catastrophic collisions are also possible when using a prime number of buckets (but seems far less likely). In short, this patch adds an extra tuning knob for those clients trying to get the last bit of performance squeezed out of their hash containers. Casual users of the hash containers will not notice the introduction of this tuning knob. Those clients who swear by power-of-2 hash containers can now opt-in to that strategy. Clients who prefer a prime number of buckets can continue as they have.
...
llvm-svn: 159836
2012-07-06 17:31:14 +00:00
Chad Rosier
e3a87b1511
Update getFunction parameter documentation. Fixes PR13268.
...
llvm-svn: 159835
2012-07-06 17:15:03 +00:00
Dmitri Gribenko
aa4f47f266
Revert r159789.
...
llvm-svn: 159834
2012-07-06 16:42:25 +00:00
Dmitri Gribenko
bacb9f65a7
Stop using new[] on llvm::BumpPtrAllocator.
...
llvm-svn: 159833
2012-07-06 16:41:59 +00:00
Filipe Cabecinhas
5d261b0601
Fix a wrong variable name.
...
llvm-svn: 159832
2012-07-06 16:20:13 +00:00
NAKAMURA Takumi
b8c7dada33
llvm/include/llvm/CMakeLists.txt: Cut dependency to intrinsics_gen.
...
llvm-svn: 159831
2012-07-06 15:55:39 +00:00
Dmitri Gribenko
08630059c5
Use C++ cast.
...
llvm-svn: 159830
2012-07-06 15:40:08 +00:00
Benjamin Kramer
b2c42807a4
Remove unreachable default case to pacify clang's -Wcovered-switch-default.
...
llvm-svn: 159829
2012-07-06 15:27:25 +00:00
Dmitry Vyukov
e0d31e9170
tsan: Go lang: symbolize stack traces
...
llvm-svn: 159827
2012-07-06 14:54:25 +00:00
Duncan Sands
c65aa3f6ae
Attempt to fix windows buildbots. Patch by James Benton.
...
llvm-svn: 159826
2012-07-06 14:43:16 +00:00
Kostya Serebryany
739b0de5b1
[tsan] start using AllocatorCache in CombinedAllocator
...
llvm-svn: 159825
2012-07-06 14:32:00 +00:00
Alexander Potapenko
740d166c3e
Small fix: do not replace the default CFAllocator if it has been replaced already.
...
llvm-svn: 159824
2012-07-06 13:52:28 +00:00
Kostya Serebryany
d1e6094f9e
[tsan] implement SizeClassAllocatorLocalCache (part of tsan allocator)
...
llvm-svn: 159823
2012-07-06 13:46:49 +00:00
Alexander Potapenko
dc211a8db4
Because CFAllocatorCreate() should also be called after __CFInitialize() on Lion,
...
do so by factoring the CFAllocator logic into ReplaceCFAllocator(), which is called from
either the __CFInitialize wrapper or __asan_init(), depending on which of them is called later.
llvm-svn: 159822
2012-07-06 13:24:28 +00:00
Alexander Potapenko
89f9270366
A portable way to check whether __CFInitialize has been called: compare kCFAllocatorSystemDefault._base._cfisa to 0.
...
This should fix http://code.google.com/p/address-sanitizer/issues/detail?id=87 on both Lion and Snow Leopard.
llvm-svn: 159821
2012-07-06 13:04:12 +00:00
NAKAMURA Takumi
4f934676fb
test/CodeGen/X86/sext-setcc-self.ll: Mark it as XFAIL: cygwin,mingw32,win32. Investigating.
...
llvm-svn: 159820
2012-07-06 12:12:39 +00:00
Alexander Potapenko
d2ff0b087a
Do not check for __CFRuntimeClassTableSize on non-10.6 systems, where this symbol is private.
...
This change may cause http://code.google.com/p/address-sanitizer/issues/detail?id=87 to re-appear on Lion.
llvm-svn: 159819
2012-07-06 11:58:54 +00:00
NAKAMURA Takumi
388817236f
ASTContext.cpp: Appease msvc to cast NULL to typed pointer, or msvc mistakes NULL as int.
...
llvm-svn: 159818
2012-07-06 11:51:12 +00:00
NAKAMURA Takumi
0246724cd6
Revert r159804, "[arm-fast-isel] Add support for vararg function calls."
...
It broke LLVM :: CodeGen/Thumb2/large-call.ll on several hosts.
llvm-svn: 159817
2012-07-06 11:12:44 +00:00
NAKAMURA Takumi
b5c85bab08
clang/test/CodeGen/fp-contract.c: It requires ppc32!
...
llvm-svn: 159816
2012-07-06 11:11:27 +00:00
Tobias Grosser
903c242662
Update libGPURuntime to be dual licensed under MIT and UIUC license.
...
Contributed by: Yabin Hu <yabin.hwu@gmail.com>
llvm-svn: 159815
2012-07-06 10:40:15 +00:00
Kostya Serebryany
78e973fa6b
[tsan] use intrusive list in the new tsan allocator
...
llvm-svn: 159814
2012-07-06 09:26:01 +00:00
Kostya Serebryany
ff13537a94
[tsan] add intrusive list to be used in tsan allocator, etc
...
llvm-svn: 159812
2012-07-06 09:03:45 +00:00
Alexey Samsonov
39602781f6
Fix PR13202 and a regtest.
...
DwarfDebug class could generate the same (inlined) DIVariable twice:
1) when trying to find abstract debug variable for a concrete inlined instance.
2) when explicitly collecting info for variables that were optimized out.
This change makes sure that this duplication won't happen and makes
Clang pass "gdb.opt/inline-locals" test from gdb testsuite.
Reviewed by Eric Christopher.
llvm-svn: 159811
2012-07-06 08:45:08 +00:00
Arnaud A. de Grandmaison
89341e78c3
[cindex.py] Fix erroneous comment for CompileCommands
...
llvm-svn: 159810
2012-07-06 08:22:05 +00:00
Manuel Klimek
2cf1ce7f1f
Another fix for the configure build: correct order of dependencies.
...
llvm-svn: 159809
2012-07-06 08:13:45 +00:00
Hongbin Zheng
cea35f60d5
Add an Instruction member to MemoryAccess Class.
...
Patched by TangKK <dengjunqi06323011@hotmail.com>.
llvm-svn: 159808
2012-07-06 06:47:03 +00:00
Manuel Klimek
cb93f785de
Build-fix: Remove non-existent directories from Makefiles.
...
llvm-svn: 159807
2012-07-06 06:00:30 +00:00
Bill Wendling
fab09c66f3
Sphinxify the CMake document.
...
llvm-svn: 159806
2012-07-06 05:51:50 +00:00
Manuel Klimek
04616e4776
Adds the AST Matcher library, which provides a in-C++ DSL to express
...
matches on interesting parts of the AST, and callback mechanisms to
act on them.
llvm-svn: 159805
2012-07-06 05:48:52 +00:00
Jush Lu
5e6e6264f4
[arm-fast-isel] Add support for vararg function calls.
...
llvm-svn: 159804
2012-07-06 03:02:37 +00:00
Jason Molenda
85da312d00
Change the "run" / "r" command alias to not use --shell for lldb
...
running natively on arm - on iOS we have to do some extra work to
track the inferior process if we launch with a shell intermediary.
<rdar://problem/11719396>
llvm-svn: 159803
2012-07-06 02:46:23 +00:00
Jack Carter
2ab73b13a5
Changes per review of commit 159787
...
Mips specific inline asm operand modifier D.
Comment changes and predicate change.
llvm-svn: 159802
2012-07-06 02:44:22 +00:00
Eric Christopher
174266960e
Untabify and move a function near similar functions dealing with struct
...
types.
llvm-svn: 159801
2012-07-06 02:35:57 +00:00
Jakob Stoklund Olesen
3f1bb93cab
Add some comments suggested in code review.
...
llvm-svn: 159800
2012-07-06 02:31:22 +00:00
Jason Molenda
84d32ddfc8
Bump versions to lldb-161, debugserver-188.
...
llvm-svn: 159798
2012-07-06 01:32:10 +00:00
Dmitri Gribenko
017b677737
CommentParser.cpp: remove unused variable.
...
llvm-svn: 159797
2012-07-06 01:14:58 +00:00
Lang Hames
275929b5bf
Forgot to rename one use of FPContractModeTy
...
llvm-svn: 159796
2012-07-06 01:10:46 +00:00
Lang Hames
aa53b936ec
Add -ffp-contract = { fast | on | off } command line option support.
...
This flag sets the 'fp-contract' mode, which controls the formation of fused
floating point operations. Available modes are:
- Fast: Form fused operations anywhere.
- On: Form fused operations where allowed by FP_CONTRACT. This is the default
mode.
- Off: Don't form fused operations (in future this may be relaxed to forming
fused operations where it can be proved that the result won't be
affected).
Currently clang doesn't support the FP_CONTRACT pragma, so the 'On' and 'Off'
modes are equivalent.
llvm-svn: 159794
2012-07-06 00:59:19 +00:00
Dmitri Gribenko
c7ac1bb94c
Comment.h: correct identation
...
llvm-svn: 159793
2012-07-06 00:45:54 +00:00
Fariborz Jahanian
97920394c0
Added a new memberfor Parser, to be used soon
...
for doing delayed parsing of c++ method defined in
objc class implementations.
llvm-svn: 159792
2012-07-06 00:42:20 +00:00
Howard Hinnant
6b45660f14
link to Marshall's notes.
...
llvm-svn: 159791
2012-07-06 00:39:38 +00:00
Dmitri Gribenko
ec92531c29
Implement AST classes for comments, a real parser for Doxygen comments and a
...
very simple semantic analysis that just builds the AST; minor changes for lexer
to pick up source locations I didn't think about before.
Comments AST is modelled along the ideas of HTML AST: block and inline content.
* Block content is a paragraph or a command that has a paragraph as an argument
or verbatim command.
* Inline content is placed within some block. Inline content includes plain
text, inline commands and HTML as tag soup.
llvm-svn: 159790
2012-07-06 00:28:32 +00:00
Dmitri Gribenko
d5200f1bc4
Enable new[] on llvm::BumpPtrAllocator.
...
llvm-svn: 159789
2012-07-06 00:25:39 +00:00
Argyrios Kyrtzidis
89b928eb6a
[objcmt] Check for classes that accept 'objectForKey:' (or the other selectors
...
that the migrator handles) but return their instances as 'id', resulting
in the compiler resolving 'objectForKey:' as the method from NSDictionary.
When checking if we can convert to subscripting syntax, check whether
the receiver is a result of a class method from a hardcoded list of
such classes. In such a case return the specific class as the interface
of the receiver.
llvm-svn: 159788
2012-07-06 00:07:09 +00:00
Jack Carter
b2af512cef
Mips specific inline asm operand modifier D.
...
Print the second half of a double word operand.
The include list was cleaned up a bit as well.
Also the test case was modified to test for both
big and little patterns.
llvm-svn: 159787
2012-07-05 23:58:21 +00:00
Owen Anderson
00da236f7e
Fix an overzealous assertion. It is legitimate for a target to have multiple fixups on a single instruction that target the same byte, so long as their bit-offsets are coordinates appropriately.
...
llvm-svn: 159785
2012-07-05 22:30:42 +00:00
Fariborz Jahanian
31a2568096
objective-c: don't involve properties when checking
...
under -Wsuper-class-method-mismatch for method
mismatches in current and suprt class.
// rdar://11793793
llvm-svn: 159784
2012-07-05 22:26:07 +00:00