summaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
* [llvm-objdump] Use report_fatal_error() if we can't find a target.Davide Italiano2015-12-031-8/+2
| | | | llvm-svn: 254654
* [X86] Part 1 to fix x86-64 fp128 calling convention.Chih-Hung Hsieh2015-12-0315-77/+298
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Almost all these changes are conditioned and only apply to the new x86-64 f128 type configuration, which will be enabled in a follow up patch. They are required together to make new f128 work. If there is any error, we should fix or revert them as a whole. These changes should have no impact to current configurations. * Relax type legalization checks to accept new f128 type configuration, whose TypeAction is TypeSoftenFloat, not TypeLegal, but also has TLI.isTypeLegal true. * Relax GetSoftenedFloat to return in some cases f128 type SDValue, which is TLI.isTypeLegal but not "softened" to i128 node. * Allow customized FABS, FNEG, FCOPYSIGN on new f128 type configuration, to generate optimized bitwise operators for libm functions. * Enhance related Lower* functions to handle f128 type. * Enhance DAGTypeLegalizer::run, SoftenFloatResult, and related functions to keep new f128 type in register, and convert f128 operators to library calls. * Fix Combiner, Emitter, Legalizer routines that did not handle f128 type. * Add ExpandConstant to handle i128 constants, ExpandNode to handle ISD::Constant node. * Add one more parameter to getCommonSubClass and firstCommonClass, to guarantee that returned common sub class will contain the specified simple value type. This extra parameter is used by EmitCopyFromReg in InstrEmitter.cpp. * Fix infinite loop in getTypeLegalizationCost when f128 is the value type. * Fix printOperand to handle null operand. * Enhance ISD::BITCAST node to handle f128 constant. * Expand new f128 type for BR_CC, SELECT_CC, SELECT, SETCC nodes. * Enhance X86AsmPrinter to emit f128 values in comments. Differential Revision: http://reviews.llvm.org/D15134 llvm-svn: 254653
* [Hexagon] Adding shuffling resources for HVX instructions and tests for ↵Colin LeMahieu2015-12-0311-7/+1320
| | | | | | instruction encodings. llvm-svn: 254652
* [RuntimeDyld] DenseMap -> std::unordered_mapKeno Fischer2015-12-032-3/+4
| | | | | | | | | | | DenseMap is most applicable when both keys and values are small. In this case, the value violates that assumption, causing quite significant memory overhead. A std::unordered_map is more appropriate in this case (or at least fixed the memory problems I was seeing). Differential Revision: http://reviews.llvm.org/D14910 llvm-svn: 254651
* Fix pass_object_size test on Windows.George Burgess IV2015-12-031-3/+3
| | | | | | | | | The tests were failing because the types of some member functions, when printed, unexpectedly had "__attribute__((thiscall))" at the end. The types in question were relatively unimportant to begin with, so they were removed/replaced with regexes. llvm-svn: 254650
* Fix style by sorting switch-cases.Rui Ueyama2015-12-031-8/+8
| | | | llvm-svn: 254649
* Remove redundant namespace specifiers.Rui Ueyama2015-12-031-5/+4
| | | | llvm-svn: 254648
* Interface to attach maximum function count from PGO to module as module flags.Easwaran Raman2015-12-032-0/+23
| | | | | | | | | | This provides interface to get and set maximum function counts to Module. This would allow things like determination of function hotness. The actual setting of this max function count will have to be done in the frontend. Differential Revision: http://reviews.llvm.org/D15003 llvm-svn: 254647
* Add tests for `&enable_if_function` diagnostics.George Burgess IV2015-12-033-1/+25
| | | | | | | | The introduction of pass_object_size fixed a few bugs related to taking the address of a function with enable_if attributes. This patch adds tests for the cases that were fixed. llvm-svn: 254646
* [X86] Put no-op ADJCALLSTACK markers around all dynamic loweringsReid Kleckner2015-12-034-48/+78
| | | | | | | | | | | | | | | | | Summary: These ADJCALLSTACK markers don't generate code, but they keep dynamic alloca code that calls chkstk out of the prologue. This slightly pessimizes inalloca calls by preventing some register copy coalescing, but I can live with that. Reviewers: qcolombet Subscribers: hans, llvm-commits Differential Revision: http://reviews.llvm.org/D15200 llvm-svn: 254645
* [CMake] Support externalizing debug info on DarwinChris Bieneman2015-12-032-0/+27
| | | | | | | | * Adds COMPILER_RT_EXTERNALIZE_DEBUGINFO option * On Darwin this results in calling dsymutil and strip after linking * This generates an error on non-darwin platforms, matching the LLVM behavior llvm-svn: 254643
* [CMake] Removing an unnecessary layer of variable indirectionChris Bieneman2015-12-031-1/+1
| | | | | | This prevents passthrough variables from having values. llvm-svn: 254642
* [CMake] Removing an unnecessary layer of variable indirectionChris Bieneman2015-12-031-1/+1
| | | | | | This prevents passthrough variables from having values. llvm-svn: 254641
* Move branch folding test to a better location.Andrew Kaylor2015-12-031-1/+0
| | | | llvm-svn: 254640
* [analyzer] Suppress stack address escape on CK_CopyAndAutoreleaseBlockObject.Devin Coughlin2015-12-032-4/+13
| | | | | | | | | | Don't warn about addresses of stack-allocated blocks escaping if the block region was cast with CK_CopyAndAutoreleaseBlockObject. These casts, which are introduced in the implicit conversion operator for lambda-to-block conversions, cause the block to be copied to the heap -- so the warning is spurious. llvm-svn: 254639
* Fix in-memory section loading for JIT-ed code.Oleksiy Vyalov2015-12-031-0/+1
| | | | | | http://reviews.llvm.org/D15172 llvm-svn: 254638
* Replace DYNA_* names with KMP_* namesJonathan Peyton2015-12-035-213/+213
| | | | llvm-svn: 254637
* Fix buildbot failuresAndrew Kaylor2015-12-031-0/+1
| | | | llvm-svn: 254636
* Fixed header determination logic. Was missing extensionless headers in ↵John Thompson2015-12-031-1/+1
| | | | | | coverage check. llvm-svn: 254635
* Update .gitignore to include __pycache__ directories.Zachary Turner2015-12-031-0/+1
| | | | llvm-svn: 254634
* Un XFAIL some tests that are now passing on Windows.Zachary Turner2015-12-032-2/+0
| | | | llvm-svn: 254633
* Add tests for pass_object_size.George Burgess IV2015-12-034-0/+554
| | | | | | | | These additions were meant to go in as a part of r254554; while it's certainly nice to have new functionality, it's nicer if we have tests to go with it. :) llvm-svn: 254632
* Simplify test. NFC.Rafael Espindola2015-12-031-8/+4
| | | | llvm-svn: 254631
* Test commit.Easwaran Raman2015-12-031-2/+2
| | | | | | Remove blank spaces at the end of comments llvm-svn: 254630
* [WinEH] Avoid infinite loop in BranchFolding for multiple single block funcletsAndrew Kaylor2015-12-032-0/+118
| | | | | | Differential Revision: http://reviews.llvm.org/D14996 llvm-svn: 254629
* [CMake] If you're not installing the libcxx library, exclude it from the ↵Chris Bieneman2015-12-031-3/+10
| | | | | | | | "all" target so it doesn't get built when you run "ninja install" This is just a build dependency optimization. Running check-libcxx will still build libcxx and function as expected, it just removes libcxx from the all build and install targets. llvm-svn: 254628
* [CMake] Add option LLVM_EXTERNALIZE_DEBUGINFOChris Bieneman2015-12-032-0/+30
| | | | | | | | | | | | Summary: This adds support for generating dSYM files and stripping debug info from executables and dylibs. It also supports passing -object_path_lto to the linker to generate dSYMs for LTO builds. Reviewers: bogner, friss Subscribers: llvm-commits Differential Revision: http://reviews.llvm.org/D15133 llvm-svn: 254627
* dwarfdump: Correctly indentify the indicies for DWP recordsDavid Blaikie2015-12-032-5/+5
| | | | | | The indicies are one-based, not zero-based, per the spec. llvm-svn: 254626
* [PGO] Introduce error report macro in profile-rtXinliang David Li2015-12-033-3/+21
| | | | | | Also added a test case for runtime error reporting. llvm-svn: 254625
* [ThinLTO] Appending linkage fixesTeresa Johnson2015-12-033-5/+35
| | | | | | | | | | | | | | | | | | | | Summary: Fix import from module with appending var, which cannot be imported. The first fix is to remove an overly-aggressive error check. The second fix is to deal with restructuring introduced to the module linker yesterday in r254418 (actually, this fix was included already in r254559, just added some additional cleanup). Test by Mehdi Amini. Reviewers: joker.eph, rafael Subscribers: joker.eph, llvm-commits Differential Revision: http://reviews.llvm.org/D15156 llvm-svn: 254624
* [Hexagon] Remove variable unused in NDEBUG buildKrzysztof Parzyszek2015-12-031-3/+2
| | | | llvm-svn: 254623
* Fix Objective-C metadata for properties from class extensions after r251874Nico Weber2015-12-032-7/+57
| | | | | | | | | | | | After, properties from class extensions no longer show up in ObjCInterfaceDecl::properties(). Make ObjCCommonMac::EmitPropertyList() explicitly look for properties in class extensions before looking at direct properties. Also add a test that passes both with clang before r251874 and after this patch (but fails with r251874 and without this patch). llvm-svn: 254622
* AArch64FastISel: Use cbz/cbnz to branch on i1Matthias Braun2015-12-034-80/+32
| | | | | | | | | In the case of a conditional branch without a preceding cmp we used to emit a "and; cmp; b.eq/b.ne" sequence, use tbz/tbnz instead. Differential Revision: http://reviews.llvm.org/D15122 llvm-svn: 254621
* Friendly takeover of the Hexagon backendKrzysztof Parzyszek2015-12-031-4/+4
| | | | llvm-svn: 254620
* [sanitizer] Replace a local array with InternalScopedString in MaybeReexec()Kuba Brecka2015-12-031-4/+4
| | | | | | | | | | | | `MaybeReexec` contains a 1024-byte long local array, which produces a warning about frame size: .../lib/sanitizer_common/sanitizer_mac.cc:548:6: warning: stack frame size of 1132 bytes in function '__sanitizer::MaybeReexec' [-Wframe-larger-than=] Let's replace it with InternalScopedString. Differential Revision: http://reviews.llvm.org/D15181 llvm-svn: 254619
* [sanitizer] Cache results of darwin_test_archsKuba Brecka2015-12-031-1/+7
| | | | | | | | For OS X builds of compiler-rt, we run `darwin_test_archs` to determine which architectures can the toolchain target. This detection takes quite a long time, and the result is always the same (as long as you don't upgrade your OS, system headers or toolchain). Let's cache the result. Differential Revision: http://reviews.llvm.org/D15179 llvm-svn: 254618
* [Hexagon] Implement CONCAT_VECTORS for HVX using V6_vcombineKrzysztof Parzyszek2015-12-033-1/+26
| | | | llvm-svn: 254617
* [Hexagon] NFC Using canonicalizePacket to compound/duplex/pad packets rather ↵Colin LeMahieu2015-12-031-17/+11
| | | | | | than doing it separately. This also ensures the integrated assembler path matches the assembly parser path. llvm-svn: 254616
* Simplify ValueMap handling.Rafael Espindola2015-12-031-42/+49
| | | | | | We now just return values and let ValueMap handle the map. llvm-svn: 254615
* Fix clang/test/Sema/struct-packed-align.c. "Windows" is not MS compiler.NAKAMURA Takumi2015-12-031-1/+1
| | | | llvm-svn: 254614
* [Hexagon] Fix instruction descriptor flags for memory access sizeKrzysztof Parzyszek2015-12-031-2/+6
| | | | llvm-svn: 254613
* Make check-clang depend on LTO.Nico Weber2015-12-031-0/+1
| | | | | | | | r249143 added test/Driver/darwin-ld-lto.c which requires libLTO.dylib to pass, but when running `ninja check-clang` in a fresh build directory nothing caused libLTO.dylib to be built and the test would fail. llvm-svn: 254612
* [tsan] Add interceptors for Darwin-specific locking APIsKuba Brecka2015-12-033-0/+122
| | | | | | | | On OS X, there are other-than-pthread locking APIs that are used quite extensively - OSSpinLock and os_lock_lock. Let's add interceptors for those. Differential Revision: http://reviews.llvm.org/D14987 llvm-svn: 254611
* Don't pass member variables to member functions. NFC.Rafael Espindola2015-12-031-17/+12
| | | | llvm-svn: 254610
* Delete dead code.Rafael Espindola2015-12-031-2/+0
| | | | llvm-svn: 254609
* Remove some duplicated code from PlatformPOSIX/AndroidTamas Berghammer2015-12-034-98/+27
| | | | | | | | | | The code was duplicated to handle the custom symbol name for functions in libdl.so for android. This change modify the way we handle the issue to eliminate a lot of duplicated code. Differential revision: http://reviews.llvm.org/D15183 llvm-svn: 254608
* [X86] MS inline asm: produce error when encountering "<type> ptr <reg name>"Marina Yatsina2015-12-032-2/+23
| | | | | | | | | | | | | Currently "<type> ptr <reg name>" treated as <reg name> in MS inline asm, ignoring the "<type> ptr" completely and possibly ignoring the intention of the user. Fixed llvm to produce an error when encountering "<type> ptr <reg name>" operands. For example: andpd xmm1,xmmword ptr xmm1 --> andpd xmm1, xmm1 though andpd has 2 possible matching formats - andpd xmm, xmm/m128 Patch by: ziv.izhar@intel.com Differential Revision: http://reviews.llvm.org/D14607 llvm-svn: 254607
* Unxfail passing test: test/CodeGenCXX/crash.cppKrzysztof Parzyszek2015-12-031-1/+0
| | | | llvm-svn: 254606
* Revert "Fix for merging decls in pragma weak Calling ↵Alexander Kornienko2015-12-033-28/+8
| | | | | | | | | | | | CheckFunctionDeclaration so that 2 decls for the 'weak' are merged. Differential Revision: http://reviews.llvm.org/D13048" This reverts commit r254143 which introduces a crash on the following input: f(char *); g(char *); #pragma weak f = g int g(char *p) {} llvm-svn: 254605
* Follow-up of r254600 to fix the dyld_insert_libraries_reexec.cc testcase on ↵Kuba Brecka2015-12-031-2/+2
| | | | | | OS X 10.10. llvm-svn: 254604
OpenPOWER on IntegriCloud