summaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
* Fix language.Nick Lewycky2013-07-061-2/+1
| | | | llvm-svn: 185739
* Fix annotation of unlink. Should fix builder.Nick Lewycky2013-07-061-1/+1
| | | | llvm-svn: 185738
* InstCombine: typo in or_icmp_eq_B_0_icmp_ult_A_B testDavid Majnemer2013-07-061-2/+2
| | | | llvm-svn: 185737
* Update test for change in r185735.Nick Lewycky2013-07-061-1/+1
| | | | llvm-svn: 185736
* Extend 'readonly' and 'readnone' to work on function arguments as well asNick Lewycky2013-07-0622-83/+544
| | | | | | | functions. Make the function attributes pass add it to known library functions and when it can deduce it. llvm-svn: 185735
* Remove referece type onproperty of abstractFariborz Jahanian2013-07-051-1/+1
| | | | | | class type. // rdar://14261999 llvm-svn: 185734
* Use modern API to avoid exposing LiveInterval internals.Jakob Stoklund Olesen2013-07-051-5/+3
| | | | | | No functional change intended. llvm-svn: 185733
* [comment parsing]: Removes an unsafe API whoseFariborz Jahanian2013-07-052-6/+2
| | | | | | | use can cause crash. No test is available. It is uncovered by code browsing. // rdar://14348205 llvm-svn: 185732
* Remove dead function.Jakob Stoklund Olesen2013-07-052-31/+0
| | | | llvm-svn: 185731
* Fix windows build.Rafael Espindola2013-07-051-1/+1
| | | | llvm-svn: 185730
* [TRE] Combined another test into basic.llMichael Gottesman2013-07-052-13/+1
| | | | llvm-svn: 185729
* Remove unique_file now that it is unused.Rafael Espindola2013-07-052-47/+0
| | | | llvm-svn: 185728
* Use llvm::sys::fs::createUniqueFile.Rafael Espindola2013-07-056-12/+20
| | | | | | | Include a test that clang now produces output files with permissions matching the umask. llvm-svn: 185727
* Add a createUniqueFile function and switch llvm's users of unique_file.Rafael Espindola2013-07-059-21/+60
| | | | | | | | | | | | | | This function is complementary to createTemporaryFile. It handles the case were the unique file is *not* temporary: we will rename it in the end. Since we will rename it, the file has to be in the same filesystem as the final destination and we don't prepend the system temporary directory. This has a small semantic difference from unique_file: the default mode is 0666. This matches the behavior of most unix tools. For example, with this change lld now produces files with the same permissions as ld. I will add a test of this change when I port clang over to createUniqueFile (next commit). llvm-svn: 185726
* [libclang] Add the new function to libclang.exportsArgyrios Kyrtzidis2013-07-051-0/+1
| | | | llvm-svn: 185725
* [objc migrator]: More knobs to do migration toFariborz Jahanian2013-07-053-8/+15
| | | | | | use of objc's properties. llvm-svn: 185724
* [TRE] Merged several tests into the the test basic.ll.Michael Gottesman2013-07-055-62/+58
| | | | llvm-svn: 185723
* [libclang] Introduce clang_Cursor_isObjCOptional, which returns whether the ↵Argyrios Kyrtzidis2013-07-054-1/+47
| | | | | | | | declaration was affected by "@optional" rdar://14348525. llvm-svn: 185722
* Don't use mangleCXXRTTIName in TBAA for C code.Eli Friedman2013-07-052-14/+7
| | | | | | | | | | | | | | This changes the TBAA code so it doesn't use mangleCXXRTTIName in C, because it doesn't really make sense there. Also, as sort of a defense-in-depth change, fix the mangler so it handles C RecordDecls correctly. No tests because I don't know the TBAA code well enough to write a test, and I don't know how else to trigger mangling a local struct in C. Fixes a crash with r185450 reported by Joerg Sonnenberger. llvm-svn: 185721
* scop detection: remove an iteration over all usesSebastian Pop2013-07-052-29/+34
| | | | | | | reenabled reverted patch after checking that it passes without regressions on the nightly test-suite. Added testcase from Tobi. llvm-svn: 185720
* Use sys::fs::createTemporaryFile.Rafael Espindola2013-07-056-23/+20
| | | | llvm-svn: 185719
* Use llvm::sys::fs::createTemporaryFile.Rafael Espindola2013-07-051-2/+2
| | | | llvm-svn: 185718
* Use llvm::sys::fs::createTemporaryFile.Rafael Espindola2013-07-059-23/+16
| | | | llvm-svn: 185717
* Add a higher level createTemporaryFile function.Rafael Espindola2013-07-052-0/+50
| | | | | | | | This function is inspired by clang's Driver::GetTemporaryPath. It hides the pattern used for uniquing and requires simple file names that are always placed in the system temporary directory. llvm-svn: 185716
* Use SmallVectorImpl& for function arguments instead of SmallVector.Craig Topper2013-07-0521-55/+53
| | | | llvm-svn: 185715
* ARM: Add a pack pattern for matching arithmetic shift rightArnold Schwaighofer2013-07-052-0/+13
| | | | llvm-svn: 185714
* Fix regression from r185450.Eli Friedman2013-07-052-4/+14
| | | | | | | | As it turns out, the NoFunction bit for local class mangling needed to be propagated into more places. r185450 turned what used to be an incorrect mangling into an assertion. llvm-svn: 185713
* ARM: Fix incorrect pack patternArnold Schwaighofer2013-07-052-3/+18
| | | | | | | | | | | A "pkhtb x, x, y asr #num" uses the lower 16 bits of "y asr #num" and packs them in the bottom half of "x". An arithmetic and logic shift are only equivalent in this context if the shift amount is 16. We would be shifting in ones into the bottom 16bits instead of zeros if "y" is negative. radar://14338767 llvm-svn: 185712
* Remove implicit conversion from __value_type to value_type in ↵Howard Hinnant2013-07-054-52/+35
| | | | | | [unordered_][multi]map. This fixes http://llvm.org/bugs/show_bug.cgi?id=16549 llvm-svn: 185711
* Objective-C: diagnose when synthesizing an ivar ofFariborz Jahanian2013-07-054-2/+14
| | | | | | abstract class type. // rdar://14261999 llvm-svn: 185710
* Remove a useless declarations (found by scan-build)Sylvestre Ledru2013-07-052-2/+0
| | | | llvm-svn: 185709
* Add a test case for r185707/PR16547.Benjamin Kramer2013-07-051-0/+8
| | | | llvm-svn: 185708
* Fix PR16547.Rafael Espindola2013-07-051-2/+3
| | | | | | | | | | | We should not be asking unique_file to prepend the system temporary directory when creating the html report. Unfortunately I don't think we can test this with the current infrastructure since unique_file ignores MakeAbsolute if the directory is already absolute and the paths provided by lit are. I will take a quick look at making this api a bit less error prone. llvm-svn: 185707
* [sanitizer] Fix mac build.Evgeniy Stepanov2013-07-051-0/+4
| | | | llvm-svn: 185706
* [SystemZ] Remove no-op MVCsRichard Sandiford2013-07-055-1/+134
| | | | | | | | | | | The stack coloring pass has code to delete stores and loads that become trivially dead after coloring. Extend it to cope with single instructions that copy from one frame index to another. The testcase happens to show an example of this kicking in at the moment. It did occur in Real Code too though. llvm-svn: 185705
* [SystemZ] Remove redundant frame MMOsRichard Sandiford2013-07-051-24/+4
| | | | | | | | | | This fixes foldMemoryOperandImpl() so that it doesn't create duplicated frame MMOs. I hadn't realized when writing r185434 that it was the caller's responsibility to add these. No behavioural change intended. llvm-svn: 185704
* Fix double renaming bug in stack coloring passRichard Sandiford2013-07-052-26/+117
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The stack coloring pass renumbered frame indexes with a loop of the form: for each frame index FI for each instruction I that uses FI for each use of FI in I rename FI to FI' This caused problems if an instruction used two frame indexes F0 and F1 and if F0 was renamed to F1 and F1 to F2. The first time we visited the instruction we changed F0 to F1, then we changed both F1s to F2. In other words, the problem was that SSRefs recorded which instructions used an FI, but not which MachineOperands and MachineMemOperands within that instruction used it. This is easily fixed for MachineOperands by walking the instructions once and processing each operand in turn. There's already a loop to do that for dead store elimination, so it seemed more efficient to fuse the two at the block level. MachineMemOperands are more tricky because they can be shared between instructions. The patch handles them by making SSRefs an array of MachineMemOperands rather than an array of MachineInstrs. We might end up processing the same MachineMemOperand twice, but that's OK because we always know from the SSRefs index what the original frame index was. llvm-svn: 185703
* We don't need to check for windows' error codes in here.Rafael Espindola2013-07-051-3/+1
| | | | | | | The operator== calls equivalent which calls default_error_condition which handles windows to posix conversion. llvm-svn: 185702
* [SystemZ] Enable the use of MVC for frame-to-frame spillsRichard Sandiford2013-07-052-39/+58
| | | | | | | | | | ...now that the problem that prompted the restriction has been fixed. The original spill-02.py was a compromise because at the time I couldn't find an example that actually failed without the two scavenging slots. The version included here did. llvm-svn: 185701
* [PowerPC] Add some special @got@tprel fixup casesUlrich Weigand2013-07-052-0/+40
| | | | | | | | | | | | | | | When a target@got@tprel or target@got@tprel@l symbol variant is used in a fixup_ppc_half16 (*not* fixup_ppc_half16ds) context, we currently fail, since the corresponding R_PPC64_GOT_TPREL16 / R_PPC64_GOT_TPREL16_LO relocation types do not exist. However, since such symbol variants resolve to GOT offsets which are always 4-aligned, we can simply instead use the _DS variants of the relocation types, which *do* exist. The same applies for the @got@dtprel variants. llvm-svn: 185700
* Fix formatting for allocation of new pointer variables.Daniel Jasper2013-07-052-1/+6
| | | | | | | | | | | | Before: T **t = new T * ; T **q = new T * (); After: T **t = new T *; T **q = new T *(); llvm-svn: 185699
* [SystemZ] Allocate a second register scavenging slotRichard Sandiford2013-07-059-310/+314
| | | | | | | | | | | | | This is another prerequisite for frame-to-frame MVC copies. I'll commit the patch that makes use of the slot separately. The downside of trying to test many corner cases with each of the available addressing modes is that a fair few tests need to account for the new frame layout. I do still think it's useful to have all these tests though, since it's something that wouldn't get much coverage otherwise. llvm-svn: 185698
* Don't create an archive if, for example, we are asked to print the index.Rafael Espindola2013-07-052-2/+36
| | | | llvm-svn: 185697
* [SystemZ] Clean up register scavenging codeRichard Sandiford2013-07-056-62/+29
| | | | | | | | | | | | | | | | | | | | | | | | | | | SystemZ wants normal register scavenging slots, as close to the stack or frame pointer as possible. The only reason it was using custom code was because PrologEpilogInserter assumed an x86-like layout, where the frame pointer is at the opposite end of the frame from the stack pointer. This meant that when frame pointer elimination was disabled, the slots ended up being as close as possible to the incoming stack pointer, which is the opposite of what we want on SystemZ. This patch adds a new knob to say which layout is used and converts SystemZ to use target-independent scavenging slots. It's one of the pieces needed to support frame-to-frame MVCs, where two slots might be required. The ABI requires us to allocate 160 bytes for calls, so one approach would be to use that area as temporary spill space instead. It would need some surgery to make sure that the slot isn't live across a call though. I stuck to the "isFPCloseToIncomingSP - ..." style comment on the "do what the surrounding code does" principle. The FP case is already covered by several Systemz/frame-* tests, which fail without the PrologueEpilogueInserter change, so no new ones are needed. No behavioural change intended. llvm-svn: 185696
* Use simpler version of exists.Rafael Espindola2013-07-051-2/+1
| | | | llvm-svn: 185695
* [PowerPC] Make test case buildable with GNU asUlrich Weigand2013-07-051-12/+7
| | | | | | | | | | | The ppc64-fixups.s test currently fails to build with GNU as, since it does not support plain symbols as arguments to li/lis. Rewrite the test for R_PPC64_ADDR16 and R_PPC64_REL16 to use lwz instead. Allowing the test case to be built with both LLVM and GNU as makes it easier to spot unwanted difference in the output. llvm-svn: 185694
* [msan] Intercept pthread_key_create.Evgeniy Stepanov2013-07-054-0/+21
| | | | llvm-svn: 185693
* [PowerPC] Support @tls in the asm parserUlrich Weigand2013-07-0511-24/+85
| | | | | | | | | | | | | | | | | | This adds support for the last missing construct to parse TLS-related assembler code: add 3, 4, symbol@tls The ADD8TLS currently hard-codes the @tls into the assembler string. This cannot be handled by the asm parser, since @tls is parsed as a symbol variant. This patch changes ADD8TLS to have the @tls suffix printed as symbol variant on output too, which allows us to remove the isCodeGenOnly marker from ADD8TLS. This in turn means that we can add a AsmOperand to accept @tls marked symbols on input. As a side effect, this means that the fixup_ppc_tlsreg fixup type is no longer necessary and can be merged into fixup_ppc_nofixup. llvm-svn: 185692
* Remove NoOperation.Rafael Espindola2013-07-051-5/+1
| | | | | | | parseCommandLine prints and error and exists if no operation is specified, so it never returns NoOperation. llvm-svn: 185691
* [PECOFF] Use yaml2obj to avoid checking in binary files.Rui Ueyama2013-07-0519-20/+489
| | | | llvm-svn: 185690
OpenPOWER on IntegriCloud