summaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
* Revert "r223440 - Consider subregs when calling MI::registerDefIsDead for ↵Hal Finkel2014-12-052-175/+1
| | | | | | | | | phys deps" Reverting this because, while it fixes the problem in the reduced test case, it does not fix the problem in the full test case from the bug report. llvm-svn: 223442
* Reverting r223423, test timeoutVince Harron2014-12-051-33/+9
| | | | | | Was causing dosep to hang in some cases. llvm-svn: 223441
* Consider subregs when calling MI::registerDefIsDead for phys depsHal Finkel2014-12-052-1/+175
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The scheduling dependency graph is built bottom-up within each scheduling region, and ScheduleDAGInstrs::addPhysRegDeps is called to add output/anti dependencies, based on physical registers, to the SUs for instructions based on those that come before them. In the test case, we start before post-RA scheduling with a block that looks like this: ... INLINEASM <... andc $0,$0,$2 stdcx. $0,0,$3 bne- 1b > [sideeffect] [mayload] [maystore] [attdialect], $0:[regdef-ec:G8RC], %X6<earlyclobber,def,dead>, $1:[mem], %X3<kill>, $2:[reguse:G8RC], %X5<kill>, $3:[reguse:G8RC], %X3, $4:[mem], %X3, $5:[clobber], %CC<earlyclobber,imp-def,dead>, <<badref>> ... %X4<def,dead> = ANDIo8 %X4<kill>, 1, %CR0<imp-def,dead>, %CR0GT<imp-def> ... %R29<def> = ISEL %R3<undef>, %R4<kill>, %CR0GT<kill> where it is relevant that %CC is an alias to %CR0, and that %CR0GT is a subregister of %CR0. However, for post-RA scheduling, no dependency was added to prevent the INLINEASM from being scheduled in between the ANDIo8 and the ISEL (which communicate via the %CR0GT register). In ScheduleDAGInstrs::addPhysRegDeps, when called for the %CC operand, we'd iterate over all of its aliases (which include %CC itself and also %CR0), and look for previously-encountered defs of those registers. We'd find the ANDIo8, but decide not to add a dependency between the INLINEASM and the ANDIo8 because both the INLINEASM's def of %CC is dead, and also the ANDIo8 def of %CR0 is dead. This ignores, however, that ANDIo8 has a non-dead def of %CR0GT, a subregister of %CR0, and thus a dependency still must exist. To fix this problem, when calling registerDefIsDead on the SU with the def, we also check all subregisters for possible non-dead defs, and add the dependency if any are found. Fixes PR21742. llvm-svn: 223440
* ADT: Remove GetStringMapEntryFromValue()Duncan P. N. Exon Smith2014-12-051-13/+0
| | | | | | | It relies on undefined behaviour, since `StringMapEntry<>` is not a standard layout type. There are no users anyway. llvm-svn: 223439
* IR: Stop relying on GetStringMapEntryFromValue()Duncan P. N. Exon Smith2014-12-052-2/+5
| | | | | | It relies on undefined behaviour. llvm-svn: 223438
* Added CMake support so all the Clang modules codeSean Callanan2014-12-052-1/+2
| | | | | | | will at least be built by non-OS X builders. This should head off some build breakage at the pass. llvm-svn: 223437
* Changes to the expression parser to actually useSean Callanan2014-12-053-3/+84
| | | | | | the types that we find in Clang modules. llvm-svn: 223436
* Additional changes required by r223433.Sean Callanan2014-12-052-34/+85
| | | | llvm-svn: 223435
* Removed a stray directory.Sean Callanan2014-12-050-0/+0
| | | | llvm-svn: 223434
* This is the meat of the code to add Clang modulesSean Callanan2014-12-0516-125/+565
| | | | | | | | | | | | | | support to LLDB. It includes the following: - Changed DeclVendor to TypeVendor. - Made the ObjCLanguageRuntime provide a DeclVendor rather than a TypeVendor. - Changed the consumers of TypeVendors to use DeclVendors instead. - Provided a few convenience functions on ClangASTContext to make that easier. llvm-svn: 223433
* Added the LLDB enumeration necessary to find theSean Callanan2014-12-051-2/+2
| | | | | | Clang headers directory. Needed by r223430. llvm-svn: 223432
* Added support to Platform to indicate (1) whether theSean Callanan2014-12-058-2/+372
| | | | | | | | current platform supports Clang modules, and (2) what options to pass to Clang so it can load those Clang modules. llvm-svn: 223431
* Add support for embedding Clang compiler headersSean Callanan2014-12-055-0/+105
| | | | | | | | | like tgmath.h and stdarg.h into the LLDB installation, and then finding them through the Host infrastructure. Also add a script to actually do this on Mac OS X. llvm-svn: 223430
* Have the driver and the target code agree on what the default ABIEric Christopher2014-12-057-35/+69
| | | | | | | | | is for each machine. Fix up darwin tests that were testing for aapcs on armv7-ios when the actual ABI is apcs. Should be no user visible change without -cc1. llvm-svn: 223429
* Cleanup: Calls to getDwarfRegNum() may actually fail, if there isAdrian Prantl2014-12-053-27/+44
| | | | | | | | | | | | | no DWARF register number mapping, or if the register was a virtual register that was never materialized. Previously, we would just emit a bogus location, after this patch we don't emit a location at all by doing an early exit. After my bugfix in r223401 today, this doesn't actually happen on any target that I tested this with, but it's still preferable to make the possibility of a failure explicit. llvm-svn: 223428
* Add a comment.Adrian Prantl2014-12-051-1/+1
| | | | llvm-svn: 223427
* [analyzer] Eliminated endless loop.Anton Yartsev2014-12-051-0/+1
| | | | llvm-svn: 223426
* Make GetSVN.cmake do its VCS queries with native CMake code.Paul Robinson2014-12-051-5/+70
| | | | | | | | | | This lets the queries work on Windows as well as Linux. This does mean make and cmake aren't using the same scripts to do the queries (again), but at least GetSVN.cmake understands git and git-svn as well as svn now. llvm-svn: 223425
* linkGlobalVariableProto never returns null. Simplify the caller. NFC.Rafael Espindola2014-12-051-6/+3
| | | | llvm-svn: 223424
* Kill any python test script that takes more than 5 minutesVince Harron2014-12-051-9/+33
| | | | | | | | | | | There is at least one test that hangs on the Linux debian buildbot. When that test hangs, the buildbot kills dosep which loses all test results. This change kills just the hung test and should let us see which test is hanging. This is useful for that test and any others in the future which start hanging. llvm-svn: 223423
* Use isOSBinFormatMachO() instead of comparing the object formatEric Christopher2014-12-053-4/+3
| | | | | | against an enum. llvm-svn: 223422
* Rename the x86 isTargetMacho to isTargetMachO for uniformity.Eric Christopher2014-12-054-8/+8
| | | | llvm-svn: 223421
* Both of these subtargets have functions that check whether orEric Christopher2014-12-052-3/+2
| | | | | | not the target is mach-o. Use them. llvm-svn: 223420
* [ASan, LSan] Improve tracking of thread creation.Sergey Matveev2014-12-056-14/+59
| | | | | | | | | | | | | | | In the current scheme of things, the call to ThreadStart() in the child thread is not synchronized with the parent thread. So, if a pointer is passed to pthread_create, there may be a window of time during which this pointer will not be discoverable by LSan. I.e. the pthread_create interceptor has already returneed and thus the pointer is no longer on the parent stack, but we don't yet know the location of the child stack. This has caused bogus leak reports (see http://llvm.org/bugs/show_bug.cgi?id=21621/). This patch makes the pthread_create interceptor wait until the child thread is properly registered before returning. llvm-svn: 223419
* Move merging of alignment to a central location. NFC.Rafael Espindola2014-12-051-19/+3
| | | | llvm-svn: 223418
* Add a few extra cases to the test. NFC.Rafael Espindola2014-12-052-5/+30
| | | | llvm-svn: 223417
* Re-add support to llvm-objdump for Mach-O universal files and archives with ↵Kevin Enderby2014-12-046-19/+267
| | | | | | | | | | | -macho with fixes. Includes the move of tests for llvm-objdump for universal files to an X86 directory. And the fix where it was failing on linux Rafael tracked down with asan. I had both Jim Grosbach and Adam Hemet look over the second fix since I could not set up asan to reproduce with the old version but not with the fix. llvm-svn: 223416
* [X86] Delete dead code in fcopysign lowering. NFC.Ahmed Bougacha2014-12-041-11/+0
| | | | | | | | | r32900 introduced custom lowering for fcopysign, with two checks to change the magnitude value's type if it's larger/smaller than the sign value's type. r32932 replaced that code for the smaller case. r43205 did the same for the larger case, but left the old code, now dead. llvm-svn: 223415
* Convert test to use an extra Input file. NFC.Rafael Espindola2014-12-043-8/+9
| | | | llvm-svn: 223414
* Parse qualifiers after comma in declarator lists as a Microsoft extensionNico Rieck2014-12-045-0/+61
| | | | | | MSVC parses and ignores these with a warning. llvm-svn: 223413
* Recognize __unaligned keyword after type specifierNico Rieck2014-12-042-0/+2
| | | | | | | | The __unaligned keyword can appear after a struct definition: struct foo {...} __unaligned *x; llvm-svn: 223412
* Remove extra semicolon.Rui Ueyama2014-12-041-1/+1
| | | | llvm-svn: 223411
* Revert "Fix UBSan report in StringMap implementation."Alexey Samsonov2014-12-041-1/+4
| | | | | | | This reverts commit r223402. Some bots fail with -Winvalid-offsetof warning. llvm-svn: 223407
* Simplify implementation and testcase of r223401 based on feedback from dblaikie.Adrian Prantl2014-12-042-27/+20
| | | | llvm-svn: 223405
* Adding a FIXME to the code, based on a discussion in IRC; NFC.Aaron Ballman2014-12-041-0/+4
| | | | llvm-svn: 223403
* Fix UBSan report in StringMap implementation.Alexey Samsonov2014-12-041-4/+1
| | | | | | Use offsetof() instead of a member access within null pointer. llvm-svn: 223402
* Debug info: If the RegisterCoalescer::reMaterializeTrivialDef() isAdrian Prantl2014-12-042-1/+83
| | | | | | | eliminating all uses of a vreg, update any DBG_VALUE describing that vreg to point to the rematerialized register instead. llvm-svn: 223401
* Fix a bunch of -Winconsistent-missing-override warnings.Eric Christopher2014-12-041-7/+7
| | | | llvm-svn: 223400
* Add some tests for SimplifyCFG's TurnSwitchRangeIntoICmp(). NFC.Hans Wennborg2014-12-041-0/+50
| | | | llvm-svn: 223396
* Add some tests for SimplifyCFG's ConstantFoldTerminator(). NFC.Hans Wennborg2014-12-041-0/+64
| | | | llvm-svn: 223395
* Also use --icf=safe if we are being linked by gold.Rafael Espindola2014-12-041-1/+1
| | | | llvm-svn: 223394
* Fix a minor error where I forgot to declare a variable.Zachary Turner2014-12-041-1/+2
| | | | llvm-svn: 223393
* Revert "Use timeout when reading debugserver's port from a named pipe."Zachary Turner2014-12-041-55/+12
| | | | | | | | | | This reverts commit 4a5ad2c077166cc3d6e7ab4cc6e3dcbbe922af86. Windows doesn't support select() for pipe objects, and this also fails to compile on Windows. Reverting this until we can get it sorted out to keep the windows build working. llvm-svn: 223392
* Silence warning: "NOMINMAX" redefined.Yaron Keren2014-12-041-1/+3
| | | | llvm-svn: 223391
* Add a FIXME as requested by Renato Golin.Roman Divacky2014-12-041-0/+3
| | | | llvm-svn: 223390
* Silence warning: variable 'buffer' set but not used.Yaron Keren2014-12-041-3/+5
| | | | llvm-svn: 223389
* Revert "Fix a build breakage. Looks like the LLVM side of this change has ↵David Majnemer2014-12-041-1/+1
| | | | | | | | | been reverted" This reverts commit r223375. We need to use unique_ptr to build with LLVM r223183. llvm-svn: 223388
* CMake: build DLLs in the right directory and include them in the 'install' ↵Hans Wennborg2014-12-041-2/+4
| | | | | | | | | | | | | | | | target (PR21719) When CMake builds a dynamic library on Windows, the .dll file's location is determined by the RUNTIME_OUTPUT_DIRECTORY, which we were previously not setting. This means for example that clang_rt.asan_dynamic-i386.dll will get built and installed in the same directory as the corresponding .lib file, instead of being built in the bin/ directory and not installed at all. Differential Revision: http://reviews.llvm.org/D6508 llvm-svn: 223387
* Roll gofrontend to 2a85649c19e1.Peter Collingbourne2014-12-049-37/+61
| | | | llvm-svn: 223385
* Add attributes for AMDGPU register limits.Matt Arsenault2014-12-049-2/+264
| | | | | | | This is a performance hint that can be applied to kernels to attempt to limit the number of used registers. llvm-svn: 223384
OpenPOWER on IntegriCloud