summaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
* Add XOP permute intrinsics.Craig Topper2012-06-123-0/+52
| | | | llvm-svn: 158351
* Add two newlines in ParseSubtargetFeatures's debug output after the CPU is ↵Hal Finkel2012-06-121-1/+1
| | | | | | | | | printed. There is otherwise not a newline between the CPU name and the start of the next pass's output which makes both difficult to read. llvm-svn: 158350
* Reapply r158337, this time properly protect Darwin/PPC host CPU use with ↵Hal Finkel2012-06-122-135/+134
| | | | | | | | | | | | | __ppc__. Original commit message: Move PPC host-CPU detection logic from PPCSubtarget into sys::getHostCPUName(). Both the new Linux functionality and the old Darwin functions have been moved. This change also allows this information to be queried directly by clang and other frontends (clang, for example, will now have real -mcpu=native support). llvm-svn: 158349
* If parsing a trailing-return-type fails, don't pretend we didn't have one atRichard Smith2012-06-129-31/+41
| | | | | | all. Suppresses follow-on errors mentioned in PR13074. llvm-svn: 158348
* Correct comment. The return type was changed to const Type* in r123814. ↵Dmitri Gribenko2012-06-121-2/+0
| | | | | | Patch by David Röthlisberger. llvm-svn: 158347
* Satisfy C++ aliasing rules, per suggestion by Chandler.Argyrios Kyrtzidis2012-06-123-3/+8
| | | | llvm-svn: 158346
* Revert r158337 "Move PPC host-CPU detection logic from PPCSubtarget into ↵Jakob Stoklund Olesen2012-06-122-132/+133
| | | | | | | | | sys::getHostCPUName()." This commit broke most of the PowerPC unit tests when running on Intel/Apple. llvm-svn: 158345
* FileCheck docs: remove leftover HTML markup.Dmitri Gribenko2012-06-121-9/+9
| | | | llvm-svn: 158344
* Remove unused variable.Dmitri Gribenko2012-06-121-5/+0
| | | | llvm-svn: 158343
* For llvm::sys::ThreadLocalImpl instead of malloc'ing the platform-specificArgyrios Kyrtzidis2012-06-123-14/+18
| | | | | | | | | | | thread local data, embed them in the class using a uint64_t and make sure we get compiler errors if there's a platform where this is not big enough. This makes ThreadLocal more safe for using it in conjunction with CrashRecoveryContext. Related to crash in rdar://11434201. llvm-svn: 158342
* Revert "[analyzer] Treat LValueBitCasts like regular pointer bit casts."Jordan Rose2012-06-124-48/+7
| | | | | | | | | This does not actually give us the right behavior for reinterpret_cast of references. Reverting so I can think about it some more. This reverts commit 50a75a6e26a49011150067adac556ef978639fe6. llvm-svn: 158341
* misched: When querying RegisterPressureTracker, always save current and max ↵Andrew Trick2012-06-112-7/+16
| | | | | | pressure. llvm-svn: 158340
* misched: regpressure getMaxPressureDelta, revert accidental checkin.Andrew Trick2012-06-111-8/+2
| | | | llvm-svn: 158339
* [analyzer] Treat LValueBitCasts like regular pointer bit casts.Jordan Rose2012-06-114-7/+48
| | | | | | | | | | | | | These casts only appear in very well-defined circumstances, in which the target of a reinterpret_cast or a function formal parameter is an lvalue reference. According to the C++ standard, the following are equivalent: reinterpret_cast<T&>( x) *reinterpret_cast<T*>(&x) [expr.reinterpret.cast]p11 llvm-svn: 158338
* Move PPC host-CPU detection logic from PPCSubtarget into sys::getHostCPUName().Hal Finkel2012-06-112-133/+132
| | | | | | | | Both the new Linux functionality and the old Darwin functions have been moved. This change also allows this information to be queried directly by clang and other frontends (clang, for example, will now have real -mcpu=native support). llvm-svn: 158337
* Move implementation of WriterOptionsMachO to its own file. Reduced redundantNick Kledzik2012-06-1112-345/+1090
| | | | | | | | ivars in WriterOptionsMachO instead have its methods compute ivar interactions. Refactor mach-o Reference Kinds and introduce abstract class KindHandler. Split up StubAtoms.hpp by architecture. Add support for 32-bit x86 stubs. llvm-svn: 158336
* [analyzer] WWW: Add FAQ to the menu.Anna Zaks2012-06-111-2/+3
| | | | llvm-svn: 158335
* Add PPC support for translating gcc-style -mcpu options into LLVM ↵Hal Finkel2012-06-115-1/+143
| | | | | | | | | | | | | | -target-cpu options. This functionality is based on what is done on ARM, and enables selecting PPC CPUs in a way compatible with gcc's driver. Also, mirroring gcc (and what is done on x86), -mcpu=native support was added. This uses the host cpu detection from LLVM (which will also soon be updated by refactoring code currently in backend). In order for this to work, the target needs a list of valid CPUs -- we now accept all CPUs accepted by LLVM. A few preprocessor defines for common CPU types have been added. llvm-svn: 158334
* [analyzer] WWW: FAQ - fix the assertion use example.Anna Zaks2012-06-111-0/+0
| | | | llvm-svn: 158333
* [analyzer] The FAQ question style shouldn't be the same as code_example.Anna Zaks2012-06-111-5/+1
| | | | llvm-svn: 158332
* [analyzer] WWW: Add table of contents, fixed code examples.Anna Zaks2012-06-111-7/+43
| | | | llvm-svn: 158331
* [analyzer] WWW: Mention that we do not support "noreturn" for methods.Anna Zaks2012-06-111-1/+2
| | | | llvm-svn: 158330
* Make CodeGenFunction::EmitMSAsmStmt throw a fatal error as MS-style inlineChad Rosier2012-06-111-37/+2
| | | | | | assembly is completely untested and unsupported. llvm-svn: 158329
* Fix test that depends on register allocation.Jakob Stoklund Olesen2012-06-111-5/+4
| | | | | | | The test is really checking the prolog/epilog load/store multiple formation. llvm-svn: 158328
* rdar://problem/11390100Johnny Chen2012-06-111-15/+18
| | | | | | debugserver needs to be able to posix_spawn debugging apps that have ".app" in their path that aren't bundles llvm-svn: 158327
* Etch out the code path for MS-style inline assembly.Chad Rosier2012-06-1121-33/+241
| | | | llvm-svn: 158325
* Enable MFOCRF generation on the PPC A2 core.Hal Finkel2012-06-111-2/+2
| | | | llvm-svn: 158324
* Rename the PPC target feature gpul to mfocrf.Hal Finkel2012-06-115-13/+13
| | | | | | | | | | | The PPC target feature gpul (IsGigaProcessor) was only used for one thing: To enable the generation of the MFOCRF instruction. Furthermore, this instruction is available on other PPC cores outside of the G5 line. This feature now corresponds to the HasMFOCRF flag. No functionality change. llvm-svn: 158323
* Add A2 to the list of PPC CPUs recognized by Linux host CPU-type detection.Hal Finkel2012-06-111-0/+1
| | | | llvm-svn: 158322
* [analyzer] Add ObjCLoopChecker: objects from NSArray et al are non-nil.Jordan Rose2012-06-114-4/+144
| | | | | | | | | | | | While collections containing nil elements can still be iterated over in an Objective-C for-in loop, the most common Cocoa collections -- NSArray, NSDictionary, and NSSet -- cannot contain nil elements. This checker adds that assumption to the analyzer state. This was the cause of some minor false positives concerning CFRelease calls on objects in an NSArray. llvm-svn: 158319
* [analyzer] When looking for a known class, only traverse the hierarchy once.Jordan Rose2012-06-111-48/+50
| | | | | | | | | This has a small hit in the case where only one class is interesting (NilArgChecker) but is a big improvement when looking for one of several interesting classes (VariadicMethodTypeChecker), in which the most common case is that there is no match. llvm-svn: 158318
* Enable -Wunused-private-field with -Wunused.Benjamin Kramer2012-06-112-2/+2
| | | | | | | It found a lot of cruft in LLVM that I removed last week and I couldn't find any false positives. Time to give it more testing. llvm-svn: 158317
* Fix test case to work on ARM.Jakob Stoklund Olesen2012-06-111-2/+3
| | | | | | Patch by James Benton! llvm-svn: 158316
* Emit the two-operand form of the PPC mfcr instruction as mfocrf.Hal Finkel2012-06-111-1/+1
| | | | | | This is necessary on Linux and supported on Darwin, see PR2604. llvm-svn: 158315
* Add local CPU detection for Linux PPC.Hal Finkel2012-06-111-1/+95
| | | | | | This functionality mirrors that available on PPC/Darwin. llvm-svn: 158314
* Add POWER6 and POWER7 CPU types to the PPC backend.Hal Finkel2012-06-113-0/+14
| | | | | | No functional change; these will be used by upcoming scheduler enhancements. llvm-svn: 158313
* Add test rdx, rdx to fix ASan tests on Mac OS 10.7 x64Alexander Potapenko2012-06-111-0/+1
| | | | llvm-svn: 158312
* Write llvm-tblgen backends as functions instead of sub-classes.Jakob Stoklund Olesen2012-06-1134-1082/+912
| | | | | | | | | The TableGenBackend base class doesn't do much, and will be removed completely soon. Patch by Sean Silva! llvm-svn: 158311
* Fix a problem with the reverse bundle iterators.Jakob Stoklund Olesen2012-06-111-52/+16
| | | | | | | | | | | This showed up the first time rend() was called on a bundled instruction in the Mips backend. Also avoid dereferencing end() in bundle_iterator::operator++(). We still don't have a place to put unit tests for this stuff. llvm-svn: 158310
* We were computing the visibility and linkage of template parameters, butRafael Espindola2012-06-112-6/+99
| | | | | | | | | only using the linkage. Use and test both, documenting that considering the visibility and linkage of template parameters is a difference from gcc. llvm-svn: 158309
* [clang.py] Implement SourceLocation.from_offsetGregory Szorc2012-06-112-0/+23
| | | | llvm-svn: 158307
* Add some tests for the independent blocks pass.Tobias Grosser2012-06-111-0/+227
| | | | llvm-svn: 158306
* Object file output from llc isn't experimental anymore.Benjamin Kramer2012-06-111-1/+1
| | | | llvm-svn: 158305
* Add the runtime library for GPGPU code generation.Tobias Grosser2012-06-116-0/+435
| | | | | | Contributed by: Yabin Hu <yabin.hwu@gmail.com> llvm-svn: 158304
* Re-enable the CMN instruction.Bill Wendling2012-06-116-69/+166
| | | | | | | | | We turned off the CMN instruction because it had semantics which we weren't getting correct. If we are comparing with an immediate, then it's okay to use the CMN instruction. <rdar://problem/7569620> llvm-svn: 158302
* InstCombine: factor code better.Benjamin Kramer2012-06-111-14/+7
| | | | | | No functionality change. llvm-svn: 158301
* Add XOP shift and compare intrinsics.Craig Topper2012-06-113-7/+188
| | | | llvm-svn: 158300
* Documentation cleanup, fixing Doxygen markup. Mostly this avoids common termsJames Dennett2012-06-115-20/+20
| | | | | | | | | | | | | | such as "protocol" and "expression" being implicitly turned into links to mistakenly-generated Doxygen pages: - Escaping @ symbols when Doxygen would otherwise incorrectly interpret them; - Escaping # symbols when they're not intended as explicit Doxygen link requests, such as when discussing preprocessor directives; - In one odd case, unescaping @ in @__experimental_modules_import, because Doxygen wrote '\@' to the output in that case, causing the example in the description of ImportDecl to be wrong; and - Fixing a typo: @breif -> @brief. llvm-svn: 158299
* Const'ify CompilerInvocation::toArgs().Argyrios Kyrtzidis2012-06-112-2/+2
| | | | llvm-svn: 158298
* InstCombine: Turn (zext A) == (B & (1<<X)-1) into A == (trunc B), narrowing ↵Benjamin Kramer2012-06-102-1/+45
| | | | | | | | | | | | | | | | | | | | the compare. This saves a cast, and zext is more expensive on platforms with subreg support than trunc is. This occurs in the BSD implementation of memchr(3), see PR12750. On the synthetic benchmark from that bug stupid_memchr and bsd_memchr have the same performance now when not inlining either function. stupid_memchr: 323.0us bsd_memchr: 321.0us memchr: 479.0us where memchr is the llvm-gcc compiled bsd_memchr from osx lion's libc. When inlining is enabled bsd_memchr still regresses down to llvm-gcc memchr time, I haven't fully understood the issue yet, something is grossly mangling the loop after inlining. llvm-svn: 158297
OpenPOWER on IntegriCloud