summaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
* clang/test/CodeGenCXX/cxx14-implicit-sized-delete.cpp: Unbreak build to add ↵NAKAMURA Takumi2015-02-041-2/+2
| | | | | | | | explicit triple x86_64-unknown. It seems incompatible to i686. llvm-svn: 228100
* clang/test/CodeGenCXX/cxx14-implicit-sized-delete.cpp: Fix for -Asserts.NAKAMURA Takumi2015-02-041-2/+2
| | | | llvm-svn: 228099
* Add LF to EOF.NAKAMURA Takumi2015-02-041-1/+1
| | | | llvm-svn: 228098
* [x86] Refresh the checks of a number of tests usingChandler Carruth2015-02-045-239/+310
| | | | | | | | | | | | | update_llc_test_checks.py. The exact format of the checks has changed over time. This includes different indenting rules, new shuffle comments that have been added, and more operand hiding behind regular expressions. No functional change to the tests are expected here, but this will make subsequent patches have a clean diff as they change shuffle lowering. llvm-svn: 228097
* [x86] Switch to using the long '--check-prefix' form which theChandler Carruth2015-02-041-61/+69
| | | | | | | | | | update_llc_test_checks.py script uses, and refresh the checks in this test. No functionality changed here, just bringing this test up to work with automated updates using the python script. llvm-svn: 228096
* [x86] Port this test to use utils/update_llc_test_checks.py.Chandler Carruth2015-02-041-67/+81
| | | | | | | | This will make it easy to update as I change some parts of the X86 backend, makes it more clear what instruction differences are introduced, and I find it makes it a bit easier to read as well. llvm-svn: 228095
* Style cleanup in compareByPosition().Davide Italiano2015-02-041-7/+2
| | | | | | | | Differential Revision: D7394 Reported by: ruiu Reviewed by: ruiu llvm-svn: 228094
* Misc documentation/comment fixes.Peter Collingbourne2015-02-044-4/+6
| | | | llvm-svn: 228093
* Fix it so we always get major, minor and update from the version in ↵Greg Clayton2015-02-041-12/+4
| | | | | | | | ObjectFileMachO::GetMinimumOSVersion(...) and ObjectFileMachO::GetSDKVersion(...). <rdar://problem/19697053> llvm-svn: 228092
* Clang format of a file introduced in 228090 (NFC)Philip Reames2015-02-041-29/+22
| | | | llvm-svn: 228091
* Add a pass for inserting safepoints into (nearly) arbitrary IRPhilip Reames2015-02-047-0/+1018
| | | | | | | | | | | | | | | | | | | | | This pass is responsible for figuring out where to place call safepoints and safepoint polls. It doesn't actually make the relocations explicit; that's the job of the RewriteStatepointsForGC pass (http://reviews.llvm.org/D6975). Note that this code is not yet finalized. Its moving in tree for incremental development, but further cleanup is needed and will happen over the next few days. It is not yet part of the standard pass order. Planned changes in the near future: - I plan on restructuring the statepoint rewrite to use the functions add to the IRBuilder a while back. - In the current pass, the function "gc.safepoint_poll" is treated specially but is not an intrinsic. I plan to make identifying the poll function a property of the GCStrategy at some point in the near future. - As follow on patches, I will be separating a collection of test cases we have out of tree and submitting them upstream. - It's not explicit in the code, but these two patches are introducing a new state for a statepoint which looks a lot like a patchpoint. There's no a transient form which doesn't yet have the relocations explicitly represented, but does prevent reordering of memory operations. Once this is in, I need to update actually make this explicit by reserving the 'unused' argument of the statepoint as a flag, updating the docs, and making the code explicitly check for such a thing. This wasn't really planned, but once I split the two passes - which was done for other reasons - the intermediate state fell out. Just reminds us once again that we need to merge statepoints and patchpoints at some point in the not that distant future. Future directions planned: - Identifying more cases where a backedge safepoint isn't required to ensure timely execution of a safepoint poll. - Tweaking the insertion process to generate easier to optimize IR. (For example, investigating making SplitBackedge) the default. - Adding opt-in flags for a GCStrategy to use this pass. Once done, add this pass to the actual pass ordering. Differential Revision: http://reviews.llvm.org/D6981 llvm-svn: 228090
* [inlineasm] Fix an incorrect warning about register constraint and modifier.Akira Hatanaka2015-02-042-23/+29
| | | | | | | | | | | | | | | Previously, when the following piece of code was compiled, clang would incorrectly warn that the size of "wide_two" does not match register size specified by the constraint and modifier": long wide_two = two; asm ("%w0 %1" : "+r" (one), "+r"(wide_two)); This was caused by a miscalculation of ConstraintIdx in Sema::ActOnGCCAsmStmt. This commit fixes PR21270 and rdar://problem/18668354. llvm-svn: 228089
* Unbreak the MIPS buildbotDavid Majnemer2015-02-041-1/+1
| | | | llvm-svn: 228088
* Headers: Don't use attribute keywords which aren't reservedDavid Majnemer2015-02-048-71/+71
| | | | | | Instead of using 'unavailable', use '__unavailable__' llvm-svn: 228087
* improved CHECKSanjay Patel2015-02-041-1/+1
| | | | llvm-svn: 228086
* Added missing header for the explicit dependency on MDNode.Galina Kistanova2015-02-041-0/+1
| | | | llvm-svn: 228085
* InstrProf: Add some unit tests for CoverageMappingJustin Bogner2015-02-045-1/+138
| | | | | | | | | | The llvm-level tests for coverage mapping need a binary input file, which means they're hard to understand, hard to update, and it's difficult to add new ones. By adding some unit tests that build up the coverage data structures in C++, we can write more meaningful and targeted tests. llvm-svn: 228084
* InstrProf: Use a stable sort when reading coverage regionsJustin Bogner2015-02-041-1/+1
| | | | | | | Keeping regions that start at the same location in insertion order makes this logic easier to test / more deterministic. llvm-svn: 228083
* [Hexagon] Revert change to isCodeGenOnly = 1 in r228080Colin LeMahieu2015-02-041-0/+1
| | | | llvm-svn: 228082
* [Hexagon] Changing some isCodeGenOnly to isAsmParserOnly since we want them ↵Colin LeMahieu2015-02-045-40/+39
| | | | | | to asm parse but not cause decode conflicts. llvm-svn: 228080
* Remove a gross usage of environment variables in MachineVerifier, replacing ↵Owen Anderson2015-02-043-96/+81
| | | | | | | | it with support for setting the -verify-machineinstrs flag via an environment variable in LIT. This preserves the handy functionality of force-enabling the MachineVerifier, without the need to embed usage of environment variables in LLVM client applications. llvm-svn: 228079
* Simplify large switches.Rui Ueyama2015-02-041-54/+5
| | | | | | | | | | This may be a little bit inefficient than the original code but that should be okay as this is not really in a performance critical pass. http://reviews.llvm.org/D7393 llvm-svn: 228077
* InstrProf: Update for LLVM API changeJustin Bogner2015-02-031-9/+7
| | | | | | Update for the API change in r228075 llvm-svn: 228076
* InstrProf: Make CounterMappingRegions less confusing to constructJustin Bogner2015-02-032-10/+32
| | | | | | | Creating empty and expansion regions is awkward with the current API. Expose static methods to make this simpler. llvm-svn: 228075
* Make test require 'linux' instead of 'linux2'Eric Fiselier2015-02-031-1/+1
| | | | llvm-svn: 228073
* add platform to LIT's available featuresEric Fiselier2015-02-031-0/+8
| | | | llvm-svn: 228071
* Avoid two function calls of file() when not needed. Davide Italiano2015-02-031-2/+5
| | | | | | Reported by: ruiu llvm-svn: 228069
* [PBQP] Provide more information in the debug printsArnaud A. de Grandmaison2015-02-033-64/+88
| | | | | | Based on a patch by Jonas Paulsson llvm-svn: 228068
* Small fix for the "memory write -i filename" command -- if the user fails to ↵Jason Molenda2015-02-031-1/+1
| | | | | | | | | | | | specify the number of bytes to write into the inferior process, the "default byte size" will be 1. In that case, we want to copy the entire file into memory. The code was looking for a default byte size of 0 to indicate that the user had not provided a specific # of bytes to copy; adjust that to 1 to match the actual default value. <rdar://problem/18074973> llvm-svn: 228067
* PR22419: Give implicit sized deallocation functions default visibilityLarisse Voufo2015-02-032-1/+33
| | | | llvm-svn: 228066
* Unbreak hexagon botDavid Majnemer2015-02-031-1/+1
| | | | llvm-svn: 228065
* Use ImmutableCallSite for statepoint verification.Philip Reames2015-02-031-17/+20
| | | | | | | | | | Patch by: Igor Laevsky "This change generalizes statepoint verification to use ImmutableCallSite instead of CallInst. This will allow to easily implement invoke statepoint verification (in a following change)." Differential Revision: http://reviews.llvm.org/D7308 llvm-svn: 228064
* Wrap to 80 columns. No behavior change.Nico Weber2015-02-031-5/+8
| | | | llvm-svn: 228063
* CodeGen: Copy-ctorm must obey the destination's alignment requirementDavid Majnemer2015-02-033-3/+29
| | | | | | | | We would synthesize memcpy intrinsics when emitting calls to trivial C++ constructors but we wouldn't take into account the alignment of the destination. llvm-svn: 228061
* ELF: Support INPUT linker script directiveRui Ueyama2015-02-034-26/+60
| | | | | | | | | | INPUT directive is a variant of GROUP in the sense that that specifies a list of input files. The only difference is whether the entire file list is wrapped with a --start-group/--end-group or not. http://reviews.llvm.org/D7390 llvm-svn: 228060
* SEH: Track users of __try so we can pick a per-func EH personalityReid Kleckner2015-02-036-34/+179
| | | | | | | | | | | | | | | | | | There are four major kinds of declarations that cause code generation: - FunctionDecl (includes CXXMethodDecl etc) - ObjCMethodDecl - BlockDecl - CapturedDecl This patch tracks __try usage on FunctionDecls and diagnoses __try usage in other decls. If someone wants to use __try from ObjC, they can use it from a free function, since the ObjC code will need an ObjC-style EH personality. Eventually we will want to look through CapturedDecls and track SEH usage on the parent FunctionDecl, if present. llvm-svn: 228058
* Use basename of main executable in POSIX-DYLD on Android.Stephane Sezer2015-02-032-6/+29
| | | | | | | | | | | | | | | | | | | | | | | | | | | | Summary: The Android dynamic linker reports only the basename of each SO entry, so for the above check to be successful, we need to compare it to the basename of the main executable. This also has a nasty side-effect when working with older version of Android (verified on platform version 16), and debugging PIE executables: the dynamic linker has a bug and reports the load address of the main executable (which is a shared object, because PIE) to be 0. We then try to update the list of loaded sections for all shared objects, including the main executable, and set the load address to 0, which breaks everything that relies on resolving addresses in the main executable (breakpoints, stepping, etc). This commit also fixes that broken behavior when debugging on older Androids. This bug doesn't happen on newer Android versions (verified for Android L). Test Plan: Run test suite on linux. Reviewers: clayborg, tfiala, richard.mitton Subscribers: lldb-commits Differential Revision: http://reviews.llvm.org/D7188 llvm-svn: 228057
* [LV] Split off memcheck block really at the first checkAdam Nemet2015-02-031-1/+1
| | | | | | | | | | | I've noticed this while trying to move addRuntimeCheck to LoopAccessAnalysis. I think that the intention was to early exit from the overflow checking before the code for the memchecks. This is the entire reason why we compute FirstCheckInst but then we don't use that as the splitting instruction but the final check. Looks like an oversight. llvm-svn: 228056
* [x86] Fix signed vs. unsigned comparison.Chandler Carruth2015-02-031-1/+1
| | | | llvm-svn: 228055
* Fixed unused variable warning.Simon Pilgrim2015-02-031-2/+2
| | | | llvm-svn: 228054
* DebugInfo: Ensure calls to functions with default arguments which themselves ↵David Blaikie2015-02-032-1/+11
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | have default arguments, still have locations. To handle default arguments in C++ in the debug info, we disable code updating the debug location during the emission of default arguments. This code was buggy in the case of default arguments which, themselves, have default arguments - the inner default argument would re-enable debug info when it was finished, but before the outer default argument was finished. This was already a bug, but got worse (because a crasher instead of just a quality bug) with the recent improvements to debug info line quality because... The ApplyDebugLocation scoped device would find the debug info disabled and not save any debug location. But then in ~ApplyDebugLocation it would find the debug info had been enabled and would then apply the no-location. Then the outer function call would be emitted without any location. That's bad. Arguably we could /also/ fix the ApplyDebugLocation to assert on this situation (where debug info was disabled in the ctor and enabled in the dtor, or the other way around) but this is at least the necessary fix regardless. (also, I imagine this disabling behavior might need to be in-place for CGExprComplex and CGExprAgg too, maybe... ?) And I seem to recall seeing some weird default arg stepping behavior recently which might be related to this too... I'll have to look into it. llvm-svn: 228053
* Diagnose CXX 'this' pointer reference in funcs with naked attrWeiming Zhao2015-02-033-0/+23
| | | | | | | | | Clang asserts for this pointer reference in asms of naked functions. This patch diagnoses if this pointer reference is used. Differential Revision: http://reviews.llvm.org/D7329 llvm-svn: 228052
* Thread Safety Analysis: add support for before/after annotations on mutexes.DeLesley Hutchins2015-02-038-28/+486
| | | | | | | | | | These checks detect potential deadlocks caused by inconsistent lock ordering. The checks are implemented under the -Wthread-safety-beta flag. This patch also replaces calls to getAttrs() with calls to attrs() throughout ThreadSafety.cpp, which fixes the earlier issue that cause assert failures. llvm-svn: 228051
* [Hexagon] Marking a bunch of non-encoded instructions with isCodeGenOnly = 1.Colin LeMahieu2015-02-034-45/+51
| | | | llvm-svn: 228050
* [CMake] add_llvm_library: don't use .imp suffix for import libraries on ↵Hans Wennborg2015-02-031-5/+0
| | | | | | | | | | | | | | | | | Windows (PR22334) This was added in r188351 to fix a naming conflict between the profile_rt-static and profile_rt-shared who both ended up in lib/profile_rt.lib. The change also affected other libraries (like libclang), and users are reporting that they find it surprising that there's no longer a libclang.lib. Since the profile_rt naming conflict doesn't seem to exist any more, I think we can remove this. Differential Revision: http://reviews.llvm.org/D7391 llvm-svn: 228049
* [PBQP] Constify Graph::getEdgeNode1Id and Graph::getEdgeNode2IdArnaud A. de Grandmaison2015-02-031-2/+2
| | | | llvm-svn: 228048
* [X86][SSE] psrl(w/d/q) and psll(w/d/q) bit shifts for SSE2Simon Pilgrim2015-02-039-15/+670
| | | | | | | | Patch to match cases where shuffle masks can be reduced to bit shifts. Similar to byte shift shuffle matching from D5699. Differential Revision: http://reviews.llvm.org/D6649 llvm-svn: 228047
* [PowerPC] Implement the vpopcnt instructions for POWER8Bill Schmidt2015-02-038-6/+74
| | | | | | | | | | | | | | | | | | | | | | | | | | | Patch by Kit Barton. Add the vector population count instructions for byte, halfword, word, and doubleword sizes. There are two major changes here: PPCISelLowering.cpp: Make CTPOP legal for vector types. PPCRegisterInfo.td: Added v2i64 to the VRRC register definition. This is needed for the doubleword variations of the integer ops that were added in P8. Test Plan Test the instruction vpcnt* encoding/decoding in ppc64-encoding-vmx.s Test the generation of the vpopcnt instructions for various vector data types. When adding the v2i64 type to the Vector Register set, I also needed to add the appropriate bit conversion patterns between v2i64 and the existing vector types. Testing for these conversions were also added in the test case by passing a different vector type as a parameter into the test functions. There is also a run step that will ensure the vpopcnt instructions are generated when the vsx feature is disabled. llvm-svn: 228046
* [fuzzer] Add proper dependensices to the fuzzer testsKostya Serebryany2015-02-033-1/+10
| | | | | | | | | | | | | | | | | | Summary: Make sure that FileCheck is built when running check-fuzzer Test Plan: run on bot: lab.llvm.org:8011/builders/sanitizer-x86_64-linux-fuzzer Reviewers: samsonov Reviewed By: samsonov Subscribers: llvm-commits Differential Revision: http://reviews.llvm.org/D7387 llvm-svn: 228045
* [x86] Add two truly horrific test cases for the new vector shuffleChandler Carruth2015-02-031-0/+134
| | | | | | | lowering. I'm prepping patches to improve these, and this will let the delta of those patches show the improvement. =] llvm-svn: 228044
OpenPOWER on IntegriCloud