platform/upstream/llvm.git
11 years agoAdded missing include.
Greg Clayton [Fri, 15 Feb 2013 17:44:31 +0000 (17:44 +0000)]
Added missing include.

llvm-svn: 175279

11 years agoBBVectorize: Call a DAG and DAG instead of a tree
Hal Finkel [Fri, 15 Feb 2013 17:20:54 +0000 (17:20 +0000)]
BBVectorize: Call a DAG and DAG instead of a tree

Several functions and variable names used the term 'tree' to refer
to what is actually a DAG. Correcting this mistake will, hopefully,
prevent confusion in the future.

No functionality change intended.

llvm-svn: 175278

11 years agoRe-enable ConstructorInitializerAllOnOneLineOrOnePerLine option.
Daniel Jasper [Fri, 15 Feb 2013 16:49:44 +0000 (16:49 +0000)]
Re-enable ConstructorInitializerAllOnOneLineOrOnePerLine option.

This got lost and was untested as the same effect is achieved by
avoiding bin packing, which is active in Google style by default.
However, moving forward, we want more control over the bin packing
option(s) and thus, this flag should work as expected.

llvm-svn: 175277

11 years ago[ASan] Fix https://code.google.com/p/address-sanitizer/issues/detail?id=159
Alexander Potapenko [Fri, 15 Feb 2013 16:10:49 +0000 (16:10 +0000)]
[ASan] Fix https://code.google.com/p/address-sanitizer/issues/detail?id=159
MaybeReexec() does now a tricky job to manage DYLD_INSERT_LIBRARIES in a safe way.

Because we're using library interposition, it's critical for an instrumented app
to be executed with the runtime library present in DYLD_INSERT_LIBRARIES list.
Therefore if it's initially missing in that list, we append the runtime library name
to the value of DYLD_INSERT_LIBRARIES and then exec() ourselves.

On the other hand, some of the apps exec()ed by our program may not want to have
ASan runtime library preloaded, so we remove the runtime library from the
DYLD_INSERT_LIBRARIES if it's already there.

Users may want to preload other libraries using DYLD_INSERT_LIBRARIES, so we preserve those.

llvm-svn: 175276

11 years agoBruce Mitchener: Typo fixes.
Howard Hinnant [Fri, 15 Feb 2013 15:48:49 +0000 (15:48 +0000)]
Bruce Mitchener: Typo fixes.

llvm-svn: 175275

11 years agoBruce Mitchener: Minor typo fixes.
Howard Hinnant [Fri, 15 Feb 2013 15:37:50 +0000 (15:37 +0000)]
Bruce Mitchener: Minor typo fixes.

llvm-svn: 175274

11 years agoFix refactoring mistake in "Teach InstCombine to work with smaller legal types..."
Arnaud A. de Grandmaison [Fri, 15 Feb 2013 15:18:17 +0000 (15:18 +0000)]
Fix refactoring mistake in "Teach InstCombine to work with smaller legal types..."

llvm-svn: 175273

11 years agoSema: Unnest early exit and remove an unnecessary bad cast.
Benjamin Kramer [Fri, 15 Feb 2013 15:17:50 +0000 (15:17 +0000)]
Sema: Unnest early exit and remove an unnecessary bad cast.

cast<ObjCObjectPointerType> doesn't look through sugar, getAs does.
Fixes PR15257.

llvm-svn: 175272

11 years agoAbstract out emitting the vdtor calls and do it properly when using -cxx-abi microsof...
Timur Iskhodzhanov [Fri, 15 Feb 2013 14:45:22 +0000 (14:45 +0000)]
Abstract out emitting the vdtor calls and do it properly when using -cxx-abi microsoft; also fix vdtor calls for the ARM ABI

llvm-svn: 175271

11 years agoTeach InstCombine to work with smaller legal types in icmp (shl %v, C1), C2
Arnaud A. de Grandmaison [Fri, 15 Feb 2013 14:35:47 +0000 (14:35 +0000)]
Teach InstCombine to work with smaller legal types in icmp (shl %v, C1), C2

It enables to work with a smaller constant, which is target friendly for those which can compare to immediates.
It also avoids inserting a shift in favor of a trunc, which can be free on some targets.

This used to work until LLVM-3.1, but regressed with the 3.2 release.

llvm-svn: 175270

11 years agoAArch64: add branch fixup pass.
Tim Northover [Fri, 15 Feb 2013 14:32:20 +0000 (14:32 +0000)]
AArch64: add branch fixup pass.

This is essentially a stripped-down version of the ConstandIslands pass (which
always had these two functions), providing just the features necessary for
correctness.

In particular there needs to be a way to resolve the situation where a
conditional branch's destination block ends up out of range.

This issue crops up when self-hosting for AArch64.

llvm-svn: 175269

11 years agoGive these callbacks hidden visibility. It is better to not export them more
Rafael Espindola [Fri, 15 Feb 2013 14:15:59 +0000 (14:15 +0000)]
Give these callbacks hidden visibility. It is better to not export them more
than we need to and some ELF linkers complain about directly accessing symbols
with default visibility.

llvm-svn: 175268

11 years agoDon't make assumptions about the mangling of static functions in extern "C"
Rafael Espindola [Fri, 15 Feb 2013 14:08:43 +0000 (14:08 +0000)]
Don't make assumptions about the mangling of static functions in extern "C"
blocks. We still don't have consensus if we should try to change clang or
the standard, but llvm should work with compilers that implement the current
standard and mangle those functions.

llvm-svn: 175267

11 years ago[asan] support long double on 64-bit. See https://code.google.com/p/address-sanitizer...
Kostya Serebryany [Fri, 15 Feb 2013 12:46:06 +0000 (12:46 +0000)]
[asan] support long double on 64-bit. See https://code.google.com/p/address-sanitizer/issues/detail?id=151

llvm-svn: 175266

11 years agoMake helper functions static.
Benjamin Kramer [Fri, 15 Feb 2013 12:30:38 +0000 (12:30 +0000)]
Make helper functions static.

llvm-svn: 175265

11 years agoMake helpers static. Add missing include so LLVMInitializeObjCARCOpts gets C linkage.
Benjamin Kramer [Fri, 15 Feb 2013 12:30:38 +0000 (12:30 +0000)]
Make helpers static. Add missing include so LLVMInitializeObjCARCOpts gets C linkage.

llvm-svn: 175264

11 years ago[asan] make asan work with 7fff8000 offset and prelink
Kostya Serebryany [Fri, 15 Feb 2013 12:00:24 +0000 (12:00 +0000)]
[asan] make asan work with 7fff8000 offset and prelink

When prelink is installed in the system, prelink-ed
libraries map between 0x003000000000 and 0x004000000000 thus occupying the shadow Gap,
so we need so split the address space even further, like this:
|| [0x10007fff8000, 0x7fffffffffff] || HighMem    ||
|| [0x02008fff7000, 0x10007fff7fff] || HighShadow ||
|| [0x004000000000, 0x02008fff6fff] || ShadowGap3 ||
|| [0x003000000000, 0x003fffffffff] || MidMem     ||
|| [0x00087fff8000, 0x002fffffffff] || ShadowGap2 ||
|| [0x00067fff8000, 0x00087fff7fff] || MidShadow  ||
|| [0x00008fff7000, 0x00067fff7fff] || ShadowGap  ||
|| [0x00007fff8000, 0x00008fff6fff] || LowShadow  ||
|| [0x000000000000, 0x00007fff7fff] || LowMem     ||

Do it only if necessary.

Also added a bit of profiling code to make sure that the
mapping code is efficient.

Added a lit test to simulate prelink-ed libraries.
Unfortunately, this test does not work with binutils-gold linker.
If gold is the default linker the test silently passes.

Also replaced
__has_feature(address_sanitizer)
with
__has_feature(address_sanitizer) || defined(__SANITIZE_ADDRESS__)
in two places.

Patch partially by Jakub Jelinek.

llvm-svn: 175263

11 years agoPrevent only breaking before "?" in conditional expressions.
Daniel Jasper [Fri, 15 Feb 2013 11:07:25 +0000 (11:07 +0000)]
Prevent only breaking before "?" in conditional expressions.

This is almost always more readable.

Before:
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
    ? aaaaaaaaaaaaaaaaaaaaaaaaaaa : aaaaaaaaaaaaaaaaaaaaaaaaaaa;

After:
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
    ? aaaaaaaaaaaaaaaaaaaaaaaaaaa
    : aaaaaaaaaaaaaaaaaaaaaaaaaaa;

llvm-svn: 175262

11 years agoAArch64: remove ConstantIsland pass & put literals in separate section.
Tim Northover [Fri, 15 Feb 2013 09:33:43 +0000 (09:33 +0000)]
AArch64: remove ConstantIsland pass & put literals in separate section.

This implements the review suggestion to simplify the AArch64 backend. If we
later discover that we *really* need the extra complexity of the
ConstantIslands pass for performance reasons it can be resurrected.

llvm-svn: 175258

11 years agoAArch64: refactor frame handling to use movz/movk for overlarge offsets.
Tim Northover [Fri, 15 Feb 2013 09:33:26 +0000 (09:33 +0000)]
AArch64: refactor frame handling to use movz/movk for overlarge offsets.

In the near future litpools will be in a different section, which means that
any access to them is at least two instructions. This makes the case for a
movz/movk pair (if total offset <= 32-bits) even more compelling.

llvm-svn: 175257

11 years agoclang-formatize llvm-symbolizer code
Alexey Samsonov [Fri, 15 Feb 2013 08:54:47 +0000 (08:54 +0000)]
clang-formatize llvm-symbolizer code

llvm-svn: 175255

11 years agoUpdate testcases due to Attribute sorting improvements.
Bill Wendling [Fri, 15 Feb 2013 05:25:49 +0000 (05:25 +0000)]
Update testcases due to Attribute sorting improvements.

llvm-svn: 175253

11 years agoSimplify the 'operator<' for the attribute object.
Bill Wendling [Fri, 15 Feb 2013 05:25:26 +0000 (05:25 +0000)]
Simplify the 'operator<' for the attribute object.

llvm-svn: 175252

11 years agoBBVectorize: Cap the number of candidate pairs in each instruction group
Hal Finkel [Fri, 15 Feb 2013 04:28:42 +0000 (04:28 +0000)]
BBVectorize: Cap the number of candidate pairs in each instruction group

For some basic blocks, it is possible to generate many candidate pairs for
relatively few pairable instructions. When many (tens of thousands) of these pairs
are generated for a single instruction group, the time taken to generate and
rank the different vectorization plans can become quite large. As a result, we now
cap the number of candidate pairs within each instruction group. This is done by
closing out the group once the threshold is reached (set now at 3000 pairs).

Although this will limit the overall compile-time impact, this may not be the best
way to achieve this result. It might be better, for example, to prune excessive
candidate pairs after the fact the prevent the generation of short, but highly-connected
groups. We can experiment with this in the future.

This change reduces the overall compile-time slowdown of the csa.ll test case in
PR15222 to ~5x. If 5x is still considered too large, a lower limit can be
used as the default.

This represents a functionality change, but only for very large inputs
(thus, there is no regression test).

llvm-svn: 175251

11 years agoRevert "Simplify the attributes '<' comparison function."
Anna Zaks [Fri, 15 Feb 2013 04:15:55 +0000 (04:15 +0000)]
Revert "Simplify the attributes '<' comparison function."

This reverts commit 82c101153fe7b35bce48781fab038e1b8f31a7bd.

llvm-svn: 175250

11 years agoRevert "Fix testcase for attribute ordering."
Anna Zaks [Fri, 15 Feb 2013 04:15:53 +0000 (04:15 +0000)]
Revert "Fix testcase for attribute ordering."

This reverts commit 58f20a3cbfca7384fe5e25e095f18572736a4792.

llvm-svn: 175249

11 years agoRevert "Fix testcase for attribute ordering."
Anna Zaks [Fri, 15 Feb 2013 04:15:50 +0000 (04:15 +0000)]
Revert "Fix testcase for attribute ordering."

This reverts commit 997c6516ca161073a1d516ebca7c0ca7722f64e2.

llvm-svn: 175248

11 years agoOnly enable RTTI for cxa_demangle.cpp
Filipe Cabecinhas [Fri, 15 Feb 2013 02:36:40 +0000 (02:36 +0000)]
Only enable RTTI for cxa_demangle.cpp

If testing on Linux+clang proves it needs RTTI, wa can remove the
conditionals.

llvm-svn: 175242

11 years agoA little cleanup. {Disable/Enable}Breakpoint actually disables/enables BreakpointSit...
Jim Ingham [Fri, 15 Feb 2013 02:06:30 +0000 (02:06 +0000)]
A little cleanup.  {Disable/Enable}Breakpoint actually disables/enables BreakpointSites not breakpoints, it is confusing
to have it not named appropriately.  Also in StopInfoMachException, we aren't testing for software or not software, just
whether the thing is a breakpoint we set.  So don't use "software"...

llvm-svn: 175241

11 years ago[analyzer] Don't assert when mixing reinterpret_cast and derived-to-base casts.
Jordan Rose [Fri, 15 Feb 2013 01:23:24 +0000 (01:23 +0000)]
[analyzer] Don't assert when mixing reinterpret_cast and derived-to-base casts.

This just adds a very simple check that if a DerivedToBase CastExpr is
operating on a value with known C++ object type, and that type is not the
base type specified in the AST, then the cast is invalid and we should
return UnknownVal.

In the future, perhaps we can have a checker that specifies that this is
illegal, but we still shouldn't assert even if the user turns that checker
off.

PR14872

llvm-svn: 175239

11 years agoFix testcase for attribute ordering.
Bill Wendling [Fri, 15 Feb 2013 01:04:46 +0000 (01:04 +0000)]
Fix testcase for attribute ordering.

llvm-svn: 175238

11 years agoFix minor mips16 issues in directives for function prologue. Probably this does
Reed Kotler [Fri, 15 Feb 2013 01:04:38 +0000 (01:04 +0000)]
Fix minor mips16 issues in directives for function prologue. Probably this does
not matter but makes it more gcc compatible which avoids possible subtle
problems. Also, turned back on a disabled check in helloworld.ll.

llvm-svn: 175237

11 years agoFix testcase for attribute ordering.
Bill Wendling [Fri, 15 Feb 2013 00:58:25 +0000 (00:58 +0000)]
Fix testcase for attribute ordering.

llvm-svn: 175236

11 years agoSimplify the attributes '<' comparison function.
Bill Wendling [Fri, 15 Feb 2013 00:55:08 +0000 (00:55 +0000)]
Simplify the attributes '<' comparison function.

llvm-svn: 175235

11 years agoRe-apply "[analyzer] Model trivial copy/move ctors with an aggregate bind."
Jordan Rose [Fri, 15 Feb 2013 00:32:15 +0000 (00:32 +0000)]
Re-apply "[analyzer] Model trivial copy/move ctors with an aggregate bind."

...after a host of optimizations related to the use of LazyCompoundVals
(our implementation of aggregate binds).

Originally applied in r173951.
Reverted in r174069 because it was causing hangs.
Re-applied in r174212.
Reverted in r174265 because it was /still/ causing hangs.

If this needs to be reverted again it will be punted to far in the future.

llvm-svn: 175234

11 years ago[analyzer] Cache the bindings accessible through a LazyCompoundVal.
Jordan Rose [Fri, 15 Feb 2013 00:32:12 +0000 (00:32 +0000)]
[analyzer] Cache the bindings accessible through a LazyCompoundVal.

This means we don't have to recompute them all later for every
removeDeadSymbols check.

llvm-svn: 175233

11 years ago[analyzer] Scan the correct store when finding symbols in a LazyCompoundVal.
Jordan Rose [Fri, 15 Feb 2013 00:32:10 +0000 (00:32 +0000)]
[analyzer] Scan the correct store when finding symbols in a LazyCompoundVal.

Previously, we were scanning the current store. Now, we properly scan the
store that the LazyCompoundVal came from, which may have very different
live symbols.

llvm-svn: 175232

11 years ago[analyzer] Tweak LazyCompoundVal reuse check to ignore qualifiers.
Jordan Rose [Fri, 15 Feb 2013 00:32:08 +0000 (00:32 +0000)]
[analyzer] Tweak LazyCompoundVal reuse check to ignore qualifiers.

This is optimization only; no behavioral change.

llvm-svn: 175231

11 years ago[analyzer] Use collectSubRegionKeys to make removeDeadBindings faster.
Jordan Rose [Fri, 15 Feb 2013 00:32:06 +0000 (00:32 +0000)]
[analyzer] Use collectSubRegionKeys to make removeDeadBindings faster.

Previously, whenever we had a LazyCompoundVal, we crawled through the
entire store snapshot looking for bindings within the LCV's region. Now, we
just ask for the subregion bindings of the lazy region and only visit those.

This is an optimization (so no test case), but it may allow us to clean up
more dead bindings than we were previously.

llvm-svn: 175230

11 years agoDaniel Malea caught an issue where calling dotest.py with an invalid directory would...
Enrico Granata [Fri, 15 Feb 2013 00:32:05 +0000 (00:32 +0000)]
Daniel Malea caught an issue where calling dotest.py with an invalid directory would cause the progressbar init code to raise an exception
This commit fixes it

llvm-svn: 175229

11 years ago[analyzer] Refactor RegionStore's sub-region bindings traversal.
Jordan Rose [Fri, 15 Feb 2013 00:32:03 +0000 (00:32 +0000)]
[analyzer] Refactor RegionStore's sub-region bindings traversal.

This is going to be used in the next commit.
While I'm here, tighten up assumptions about symbolic offset
BindingKeys, and make offset calculation explicitly handle all
MemRegion kinds.

No functionality change.

llvm-svn: 175228

11 years ago<rdar://problem/13204647>
Enrico Granata [Fri, 15 Feb 2013 00:06:04 +0000 (00:06 +0000)]
<rdar://problem/13204647>

The SEL data formatter was working hard to ensure that pointers-to-selectors could be formatted by the same block of code. In that effort, we were taking the address-of a SEL.
This operation fails when the SEL lives in a register, and was causing problems.
The formatter has been fixed to work correctly without assuming &selector will be a valid object.

llvm-svn: 175227

11 years ago[mips] Disallow moving load/store instructions past volatile instructions.
Akira Hatanaka [Thu, 14 Feb 2013 23:54:40 +0000 (23:54 +0000)]
[mips] Disallow moving load/store instructions past volatile instructions.

Unfortunately, I wasn't able to create a test case that demonstrates the
problem I was trying to fix with this patch.

llvm-svn: 175226

11 years ago[mips] Replace usage of SmallSet with BitVector, which is used to keep track of
Akira Hatanaka [Thu, 14 Feb 2013 23:40:57 +0000 (23:40 +0000)]
[mips] Replace usage of SmallSet with BitVector, which is used to keep track of
defined and used registers. Also add a few helper functions to simplify the
code.

llvm-svn: 175224

11 years agoFix TestSBData.py test case (tested fix Linux/Mac)
Daniel Malea [Thu, 14 Feb 2013 23:38:33 +0000 (23:38 +0000)]
Fix TestSBData.py test case (tested fix Linux/Mac)
- stop ignoring the error-codes in the 'error' variable
- removed out-of-bounds accesses with read-only array fields such as:

  self.assertTrue(data2.uint8[6] == 0, 'binary 0 terminator')

Since SBData wraps a (6-character) python string literal, trying to read the
null-terminator raises an exception. Instead, I replaced the out-of-bounds
read with a length-check.

Other out-of-bounds reads (via accessor function like SBData.GetUnsignedInt8)
don't throw and are OK. I just added asserts that errors are set for these
negative cases.

llvm-svn: 175223

11 years ago[mips] Fix comments and coding style violations. Declare functions to be const.
Akira Hatanaka [Thu, 14 Feb 2013 23:20:15 +0000 (23:20 +0000)]
[mips] Fix comments and coding style violations. Declare functions to be const.

llvm-svn: 175222

11 years agoThe ARM NEON vector compare instructions take three arguments. However, the
Joel Jones [Thu, 14 Feb 2013 23:18:40 +0000 (23:18 +0000)]
The ARM NEON vector compare instructions take three arguments. However, the
assembler should also accept a two arg form, as the docuemntation specifies that
the first (destination) register is optional.

This patch uses TwoOperandAliasConstraint to add the two argument form.

It also fixes an 80-column formatting problem in:
  test/MC/ARM/neon-bitwise-encoding

<rdar://problem/12909419> Clang rejects ARM NEON assembly instructions

llvm-svn: 175221

11 years agoThe operand listing is very much outdated.
Eli Bendersky [Thu, 14 Feb 2013 23:17:03 +0000 (23:17 +0000)]
The operand listing is very much outdated.

llvm-svn: 175220

11 years ago[mips] Simplify code in function Filler::findDelayInstr.
Akira Hatanaka [Thu, 14 Feb 2013 23:11:24 +0000 (23:11 +0000)]
[mips] Simplify code in function Filler::findDelayInstr.

1. Define and use function terminateSearch.
2. Use MachineBasicBlock::iterator instead of MachineBasicBlock::instr_iterator.
3. Delete the line which checks whether an instruction is a pseudo.

llvm-svn: 175219

11 years agoMark getRawBits const.
Preston Gurd [Thu, 14 Feb 2013 22:49:29 +0000 (22:49 +0000)]
Mark getRawBits const.

Patch by Tyler Nowicki.

llvm-svn: 175218

11 years agoMake this test determinstic for my last patch.
Fariborz Jahanian [Thu, 14 Feb 2013 22:38:41 +0000 (22:38 +0000)]
Make this test determinstic for my last patch.
// rdar://13192366

llvm-svn: 175217

11 years agoBBVectorize: Remove the remaining instances of std::multimap
Hal Finkel [Thu, 14 Feb 2013 22:38:04 +0000 (22:38 +0000)]
BBVectorize: Remove the remaining instances of std::multimap

All instances of std::multimap have now been replaced by
DenseMap<K, std::vector<V> >, and this yields a speedup of 5% on the
csa.ll test case from PR15222.

No functionality change intended.

llvm-svn: 175216

11 years agoBBVectorize: Don't store candidate pairs in a std::multimap
Hal Finkel [Thu, 14 Feb 2013 22:37:09 +0000 (22:37 +0000)]
BBVectorize: Don't store candidate pairs in a std::multimap

This is another commit on the road to removing std::multimap from
BBVectorize. This gives an ~1% speedup on the csa.ll test case
in PR15222.

No functionality change intended.

llvm-svn: 175215

11 years agoobjective-C: synthesize properties in order of their
Fariborz Jahanian [Thu, 14 Feb 2013 22:33:34 +0000 (22:33 +0000)]
objective-C: synthesize properties in order of their
declarations to synthesize their ivars in similar
determinstic order so they are laid out in
a determinstic order. // rdar://13192366

llvm-svn: 175214

11 years agoBring lldb up to date with clang revision 175141.
Filipe Cabecinhas [Thu, 14 Feb 2013 22:02:57 +0000 (22:02 +0000)]
Bring lldb up to date with clang revision 175141.

llvm-svn: 175213

11 years agoSimplify code. Remove "else after return".
Jakub Staszak [Thu, 14 Feb 2013 21:50:09 +0000 (21:50 +0000)]
Simplify code. Remove "else after return".

llvm-svn: 175212

11 years ago<rdar://problem/13218655>
Greg Clayton [Thu, 14 Feb 2013 21:09:56 +0000 (21:09 +0000)]
<rdar://problem/13218655>

"target modules add" should resolve bundle executables, as should anything else that tries to create a module from a bundle path.

llvm-svn: 175210

11 years agoUpdate comment.
Chad Rosier [Thu, 14 Feb 2013 20:44:07 +0000 (20:44 +0000)]
Update comment.

llvm-svn: 175209

11 years ago[Core,Driver,ELF] Differentiate static and dynamic executables.
Michael J. Spencer [Thu, 14 Feb 2013 20:32:00 +0000 (20:32 +0000)]
[Core,Driver,ELF] Differentiate static and dynamic executables.

This also adds a simple relocation change for dynamic executables to
x86-64 ELF.

llvm-svn: 175208

11 years ago[ELF][Writer] Refactor Section to not have atoms. Move atoms into AtomSection.
Michael J. Spencer [Thu, 14 Feb 2013 20:24:38 +0000 (20:24 +0000)]
[ELF][Writer] Refactor Section to not have atoms. Move atoms into AtomSection.

The purpose of this change is to simplify creating non-atom sections.
Previously _contentType, _sectionKind and _order were used for multiple
purposes and collided in places. This moves all of the Atom specific logic down
into AtomSection and makes Section just have raw Elf_Shdr flags.

llvm-svn: 175207

11 years agolibclang: remove reinterpret_casts by using SourceLocation::getFromPtrEncoding
Dmitri Gribenko [Thu, 14 Feb 2013 20:07:36 +0000 (20:07 +0000)]
libclang: remove reinterpret_casts by using SourceLocation::getFromPtrEncoding
directly instead of casting a pointer to an integer

llvm-svn: 175206

11 years agoHexagon: Change insn class to support instruction encoding.
Jyotsna Verma [Thu, 14 Feb 2013 19:57:17 +0000 (19:57 +0000)]
Hexagon: Change insn class to support instruction encoding.
This patch doesn't introduce any functionality changes.
It adds some new fields to the Hexagon instruction classes and
changes their layout to support instruction encoding.

llvm-svn: 175205

11 years agos/bool/LLVMBool/
Bill Wendling [Thu, 14 Feb 2013 19:40:27 +0000 (19:40 +0000)]
s/bool/LLVMBool/

llvm-svn: 175204

11 years agos/bool/LLVMBool/
Bill Wendling [Thu, 14 Feb 2013 19:39:14 +0000 (19:39 +0000)]
s/bool/LLVMBool/

llvm-svn: 175203

11 years agoOne to many always's.
Jim Ingham [Thu, 14 Feb 2013 19:30:35 +0000 (19:30 +0000)]
One to many always's.

llvm-svn: 175202

11 years agoMention the inline-breakpoint-strategy in the lldb-gdb.html file.
Jim Ingham [Thu, 14 Feb 2013 19:17:49 +0000 (19:17 +0000)]
Mention the inline-breakpoint-strategy in the lldb-gdb.html file.

llvm-svn: 175201

11 years agodeath to extra whitespace
Kay Tiong Khoo [Thu, 14 Feb 2013 19:15:14 +0000 (19:15 +0000)]
death to extra whitespace

llvm-svn: 175200

11 years agoAdd two new functions to the C API:
Bill Wendling [Thu, 14 Feb 2013 19:11:28 +0000 (19:11 +0000)]
Add two new functions to the C API:

 LLVMCreateMemoryBufferWithMemoryRange - exposes MemoryBuffer::getMemBuffer
 LLVMCreateMemoryBufferWithMemoryRangeCopy - exposes MemoryBuffer::getMemBufferCopy

Patch by Moritz Maxeiner!

llvm-svn: 175199

11 years ago<rdar://problem/13064893>
Greg Clayton [Thu, 14 Feb 2013 19:11:23 +0000 (19:11 +0000)]
<rdar://problem/13064893>

Poor network connections aren't handled well; commands fail instead of retrying.

llvm-svn: 175198

11 years agoMake it clear that if you #include .c/.cpp/.m/.mm etc files, you will have to
Jim Ingham [Thu, 14 Feb 2013 19:10:36 +0000 (19:10 +0000)]
Make it clear that if you #include .c/.cpp/.m/.mm etc files, you will have to
change the breakpoint-inline-strategy for the breakpoints to take.

<rdar://problem/13189024>

llvm-svn: 175197

11 years agoadded basic support for Intel ADX instructions
Kay Tiong Khoo [Thu, 14 Feb 2013 19:08:21 +0000 (19:08 +0000)]
added basic support for Intel ADX instructions
-feature flag, instructions definitions, test cases

llvm-svn: 175196

11 years agoobjective-C: When implementing custom accessor method for
Fariborz Jahanian [Thu, 14 Feb 2013 19:07:19 +0000 (19:07 +0000)]
objective-C: When implementing custom accessor method for
a property, the -Wdirect-ivar-access should not warn when
accessing the property's synthesized instance variable.
// rdar://13142820

llvm-svn: 175195

11 years ago[analyzer] Try constant-evaluation for all variables, not just globals.
Jordan Rose [Thu, 14 Feb 2013 19:06:11 +0000 (19:06 +0000)]
[analyzer] Try constant-evaluation for all variables, not just globals.

In C++, constants captured by lambdas (and blocks) are not actually stored
in the closure object, since they can be expanded at compile time. In this
case, they will have no binding when we go to look them up. Previously,
RegionStore thought they were uninitialized stack variables; now, it checks
to see if they are a constant we know how to evaluate, using the same logic
as r175026.

This particular code path is only for scalar variables. Constant arrays and
structs are still unfortunately unhandled; we'll need a stronger solution
for those.

This may have a small performance impact, but only for truly-undefined
local variables, captures in a non-inlined block, and non-constant globals.
Even then, in the non-constant case we're only doing a quick type check.

<rdar://problem/13105553>

llvm-svn: 175194

11 years agoR600/SI: Fix int_SI_fs_interp_constant
Michel Danzer [Thu, 14 Feb 2013 19:03:25 +0000 (19:03 +0000)]
R600/SI: Fix int_SI_fs_interp_constant

The important fix is that the constant interpolation value is stored in the
parameter slot P0, which is encoded as 2.

In addition, drop the SI_INTERP_CONST pseudo instruction, pass the parameter
slot as an operand to V_INTERP_MOV_F32 instead of hardcoding it there, and
add a special operand class for the parameter slots for type checking and
pretty printing.

NOTE: This is a candidate for the Mesa stable branch.

Reviewed-by: Christian König <christian.koenig@amd.com>
Reviewed-by: Tom Stellard <thomas.stellard@amd.com>
llvm-svn: 175193

11 years agoinclude/llvm/Object/ELF.h: do debug checks only when NDEBUG
Dmitry Vyukov [Thu, 14 Feb 2013 18:41:42 +0000 (18:41 +0000)]
include/llvm/Object/ELF.h: do debug checks only when NDEBUG
validateSymbol() is called all over the place, and it seems it's a debug check.
It significantly speedups llvm-symbolizer used in tsan/asan/msan. validateSymbol() is the second hot function and accounts for 15% of runtime.

llvm-svn: 175192

11 years ago<rdar://problem/12693921>
Greg Clayton [Thu, 14 Feb 2013 18:39:30 +0000 (18:39 +0000)]
<rdar://problem/12693921>

Rename the monitor command from "qCmd" (incorrect) to "qRcmd".

llvm-svn: 175191

11 years agoDont merge consecutive loads/stores into vectors when noimplicitfloat is used.
Nadav Rotem [Thu, 14 Feb 2013 18:28:52 +0000 (18:28 +0000)]
Dont merge consecutive loads/stores into vectors when noimplicitfloat is used.

llvm-svn: 175190

11 years ago80-col
Nadav Rotem [Thu, 14 Feb 2013 18:20:48 +0000 (18:20 +0000)]
80-col

llvm-svn: 175189

11 years agoHexagon: Use multiclass for absolute addressing mode loads.
Jyotsna Verma [Thu, 14 Feb 2013 18:15:29 +0000 (18:15 +0000)]
Hexagon: Use multiclass for absolute addressing mode loads.

This patch doesn't introduce any functionality changes.

llvm-svn: 175187

11 years agoRe-apply r175088 for bug fix 13622: Add paired register support for
Weiming Zhao [Thu, 14 Feb 2013 18:10:21 +0000 (18:10 +0000)]
Re-apply r175088 for bug fix 13622: Add paired register support for
inline asm with 64-bit data on ARM

Update test case to use -mtriple=arm-linux-gnueabi

llvm-svn: 175186

11 years agoFix for bug 15246 -- out-of-bound error in the TableGen backend, CodeGenMapTable...
Jyotsna Verma [Thu, 14 Feb 2013 17:58:13 +0000 (17:58 +0000)]
Fix for bug 15246 -- out-of-bound error in the TableGen backend, CodeGenMapTable.cpp.

llvm-svn: 175185

11 years ago[arcmt] Make sure the function has an associated parameter for the argument
Argyrios Kyrtzidis [Thu, 14 Feb 2013 17:29:16 +0000 (17:29 +0000)]
[arcmt] Make sure the function has an associated parameter for the argument
before checking for its attributes.

rdar://13192395

llvm-svn: 175184

11 years agoR600: Do not fold single instruction with more that 3 kcache read
Vincent Lejeune [Thu, 14 Feb 2013 16:57:19 +0000 (16:57 +0000)]
R600: Do not fold single instruction with more that 3 kcache read

It fixes around 100 tfb piglit tests and 16 glean tests.

NOTE: This is a candidate for the Mesa stable branch.

Reviewed-by: Tom Stellard <thomas.stellard at amd.com>
llvm-svn: 175183

11 years agoR600: Export instructions are no longer terminator
Vincent Lejeune [Thu, 14 Feb 2013 16:55:11 +0000 (16:55 +0000)]
R600: Export instructions are no longer terminator

This allows MachineInstScheduler to reorder them, and thus make scheduling more
efficient.

Reviewed-by: Tom Stellard <thomas.stellard at amd.com>
llvm-svn: 175182

11 years agoR600: Fold zero/one in export instructions
Vincent Lejeune [Thu, 14 Feb 2013 16:55:06 +0000 (16:55 +0000)]
R600: Fold zero/one in export instructions

Reviewed-by: Tom Stellard <thomas.stellard at amd.com>
llvm-svn: 175181

11 years agoR600: Do not fold modifier/litterals in vector inst
Vincent Lejeune [Thu, 14 Feb 2013 16:55:01 +0000 (16:55 +0000)]
R600: Do not fold modifier/litterals in vector inst

This fixes a couple of regressions on (probably not just) cayman

NOTE: This is a candidate for the Mesa stable branch.

Reviewed-by: Tom Stellard <thomas.stellard at amd.com>
llvm-svn: 175180

11 years agoUse correct host/target CMake variables to define lit variables.
Tim Northover [Thu, 14 Feb 2013 16:49:32 +0000 (16:49 +0000)]
Use correct host/target CMake variables to define lit variables.

CMake and autotools disagree on what "host" means in a cross-compilation
context. Autotools (and lit) take it to be the machine the binaries being
compiled now will run on. CMake takes it to be the machine actually compiling
the binaries now.

This change makes lit.site-cfg more consistent between autotools and CMake,
allowing lit tests (particularly in ExecutionEngine) to run correctly when
cross-compiled with CMake

llvm-svn: 175179

11 years agoDo not run formatting checks by default
Tobias Grosser [Thu, 14 Feb 2013 16:42:50 +0000 (16:42 +0000)]
Do not run formatting checks by default

llvm-svn: 175178

11 years agoFormatting fixes
Tobias Grosser [Thu, 14 Feb 2013 16:42:45 +0000 (16:42 +0000)]
Formatting fixes

llvm-svn: 175177

11 years agoAArch64: switch from neverHasSideEffects to hasSideEffects.
Tim Northover [Thu, 14 Feb 2013 16:31:12 +0000 (16:31 +0000)]
AArch64: switch from neverHasSideEffects to hasSideEffects.

llvm-svn: 175176

11 years agoAdd deprecation of neverHasSideEffects to documentation comments.
Tim Northover [Thu, 14 Feb 2013 16:31:06 +0000 (16:31 +0000)]
Add deprecation of neverHasSideEffects to documentation comments.

llvm-svn: 175175

11 years agoclang-format: Really check all files
Tobias Grosser [Thu, 14 Feb 2013 16:25:44 +0000 (16:25 +0000)]
clang-format: Really check all files

llvm-svn: 175174

11 years agoRevert r15266. This fixes llvm.org/pr15266.
Rafael Espindola [Thu, 14 Feb 2013 16:23:08 +0000 (16:23 +0000)]
Revert r15266. This fixes llvm.org/pr15266.

llvm-svn: 175173

11 years agoAArch64: stop claiming that NEON registers are usable for now.
Tim Northover [Thu, 14 Feb 2013 16:22:14 +0000 (16:22 +0000)]
AArch64: stop claiming that NEON registers are usable for now.

If vector types have legal register classes, then LLVM bypasses LegalizeTypes
on them, which causes faults currently since the code to handle them isn't in
place.

This fixes test failures when AArch64 is the default target.

llvm-svn: 175172

11 years agoReport formatting problems as with 'diff -u'
Tobias Grosser [Thu, 14 Feb 2013 16:20:55 +0000 (16:20 +0000)]
Report formatting problems as with 'diff -u'

llvm-svn: 175171

11 years agocmake: add command polly-check-format
Tobias Grosser [Thu, 14 Feb 2013 16:19:16 +0000 (16:19 +0000)]
cmake: add command polly-check-format

This command runs clang-format on all files and reports formatting problems

llvm-svn: 175170

11 years agoAArch64: add block comments where missing
Tim Northover [Thu, 14 Feb 2013 16:17:01 +0000 (16:17 +0000)]
AArch64: add block comments where missing

Only comments affected. No code change at all.

llvm-svn: 175169

11 years agoAdd testcase for llvm-dwarfdump to test parsing of the pubnames data.
Krzysztof Parzyszek [Thu, 14 Feb 2013 16:10:58 +0000 (16:10 +0000)]
Add testcase for llvm-dwarfdump to test parsing of the pubnames data.

llvm-svn: 175168

11 years agoOn FreeBSD, we need to look in /usr/local/include so that libxml2 finds iconv.h
David Chisnall [Thu, 14 Feb 2013 15:40:44 +0000 (15:40 +0000)]
On FreeBSD, we need to look in /usr/local/include so that libxml2 finds iconv.h

Patch by Jonathan Anderson!

llvm-svn: 175167

11 years agoMangle extern "C" functions whose names are not simple identifiers.
Rafael Espindola [Thu, 14 Feb 2013 15:38:59 +0000 (15:38 +0000)]
Mangle extern "C" functions whose names are not simple identifiers.

llvm-svn: 175166