- Apr 20, 2015
-
-
Duncan P. N. Exon Smith authored
An upcoming LLVM commit will delete `DIScope`, so update users to `MDScope*`. llvm-svn: 235326
-
Lang Hames authored
llvm-svn: 235325
-
Pete Cooper authored
This adds the following targets to cmake. These can be used to build and link only specific parts of a backend, instead of having to link the whole backend. - AllTargetsAsmPrinters, AllTargetsAsmParsers, AllTargetsDescs, AllTargetsDisassemblers, AllTargetsInfos A typical use for these is instead of linking ${LLVM_TARGETS_TO_BUILD}. This commit changes llvm-mc to show how to use the new targets. Reviewed by Chris Bieneman. llvm-svn: 235324
-
Duncan P. N. Exon Smith authored
Remove typedefs for type refs: - DITypeRef => MDTypeRef - DIScopeRef => MDScopeRef - DIDescriptorRef => DebugNodeRef llvm-svn: 235323
-
Vince Harron authored
ConnectionFileDescriptor::BytesAvailable was reading multiple command bytes from the command pipe but only processing the first. This change only allows one byte to be read at a time, ensuring that all get handled. This isn't known to cause any bugs, but it might cause current/future bugs. Differential Revision: http://reviews.llvm.org/D9098 llvm-svn: 235322
-
Jozef Kolek authored
Implement BITSWAP instruction using mapping. Differential Revision: http://reviews.llvm.org/D8857 llvm-svn: 235321
-
Robert Flack authored
CROSS_COMPILE environment variable is a common convention to specify the path and/or prefix to cross compilation tools (e.g. ar, objcopy). Test Plan: dotest.py $DOTEST_OPTS -t -p 'TestBSDArchives.py|TestBreakpointCommandsFromPython.py|TestFormats.py|TestObjCDynamicValue.py' All of these tests now compile successfully and pass running macosx -> linux using a cross compilation toolchain prefixed by CROSS_COMPILE without requiring changing your PATH. They still pass when run locally on macosx. Differential Revision: http://reviews.llvm.org/D9072 llvm-svn: 235320
-
Vladimir Sukharev authored
Patch by: John Brawn Reviewers: jmolloy Subscribers: llvm-commits Differential Revision: http://reviews.llvm.org/D9105 llvm-svn: 235314
-
Sean Callanan authored
module-loading support for the expression parser. - It adds support for auto-loading modules referred to by a compile unit. These references are currently in the form of empty translation units. This functionality is gated by the setting target.auto-import-clang-modules (boolean) = false - It improves and corrects support for loading macros from modules, currently by textually pasting all #defines into the user's expression. The improvements center around including only those modules that are relevant to the current context - hand-loaded modules and the modules that are imported from the current compile unit. - It adds an "opt-in" mechanism for all of this functionality. Modules have to be explicitly imported (via @import) or auto-loaded (by enabling the above setting) to enable any of this functionality. It also adds support to the compile unit and symbol file code to deal with empty translation units that indicate module imports, and plumbs this through to the CompileUnit interface. Finally, it makes the following changes to the test suite: - It adds a testcase that verifies that modules are automatically loaded when the appropriate setting is enabled (lang/objc/modules-auto-import); and - It modifies lanb/objc/modules-incomplete to test the case where a module #undefs something that is #defined in another module. <rdar://problem/20299554> llvm-svn: 235313
-
Akira Hatanaka authored
This commit fixes the code which adds lifetime markers in InlineFunction to skip zero-sized allocas instead of asserting on them. rdar://problem/20531155 llvm-svn: 235312
-
Brendon Cahoon authored
n/1 generates a quotient equal to n and a remainder of 0. If this case is not recognized, then the SCEV divide() function can return a remainder that is greater than or equal to the denominator, which means the delinearized subscripts for the test case will be incorrect. Differential Revision: http://reviews.llvm.org/D9003 llvm-svn: 235311
-
Bill Schmidt authored
llvm-svn: 235310
-
Bill Schmidt authored
llvm-svn: 235309
-
Jozef Kolek authored
Implement disassembler support for microMIPS32r6. Differential Revision: http://reviews.llvm.org/D8490 llvm-svn: 235307
-
Ed Maste authored
Patch by Andrew Turner, with minor edits. XCode changes are mine; please update if necessary. llvm-svn: 235305
-
Pavel Labath authored
Summary: This commit moves the functionality of the operation thread into the new monitor thread. This is required to avoid a kernel race between the two threads and I believe it actually makes the code cleaner. Test Plan: Ran the test suite a couple of times, no regressions. Reviewers: ovyalov, tberghammer, vharron Subscribers: tberghammer, lldb-commits Differential Revision: http://reviews.llvm.org/D9080 llvm-svn: 235304
-
Rafael Espindola authored
The current implementations could exhibit some behavior differences: raw_fd_ostream: Whatever the underlying fd does with seek+write. In a normal file, the write position would be back to the old offset. raw_svector_ostream: The write position is always the end of the stream, so after pwrite the write position would be the new end. This matches what OS_X (all BSD?) do with a pwrite in a O_APPEND fd. Given that we don't need that feature and don't use O_APPEND a lot in LLVM, just disallow it. I am open to suggestions on renaming pwrite to something else, but this fixes the issue for now. Thanks to Yaron Keren for reporting it. llvm-svn: 235303
-
Jozef Kolek authored
This patch implements BALC and BC instructions using mapping. Differential Revision: http://reviews.llvm.org/D8388 llvm-svn: 235302
-
Daniel Jasper authored
This is now obvious as the pointer alignment behavior was changed. Before (even with pointer alignment "Left"): MACRO Constructor(const int &i) : a(a), b(b) {} After: MACRO Constructor(const int& i) : a(a), b(b) {} llvm-svn: 235301
-
Rafael Espindola authored
We have to avoid converting a reference to a global into a reference to a local, but it is fine to look past a local. Patch by Vasileios Kalintiris. I just moved the comment and added thet test. llvm-svn: 235300
-
Daniel Sanders authored
Summary: This will allow us to enable it on the buildbot (and then enable a sanitizer buildbot). The problem is that gcc for Mips does not accept -m32/-m64 like clang does. We therefore need to use the nearest equivalent -mips32r2/-mips64r2. We must also specify -mabi=64 in the -mips64r2 case since gcc's default ABI has traditionally been N32 whereas clang's is N64. Reviewers: sagar Reviewed By: sagar Subscribers: llvm-commits, samsonov, kcc, mohit.bhakkad, Anand.Takale, sagar Differential Revision: http://reviews.llvm.org/D8892 llvm-svn: 235299
-
Jozef Kolek authored
Differential Revision: http://reviews.llvm.org/D8387 llvm-svn: 235298
-
Viktor Kutuzov authored
Differential Revision: http://reviews.llvm.org/D8834 llvm-svn: 235297
-
Jozef Kolek authored
Differential Revision: http://reviews.llvm.org/D8386 llvm-svn: 235296
-
Andrea Di Biagio authored
This fixes a regression introduced at revision 231243. The target-independent selection algorithm in FastISel knows how to select a SINT_TO_FP if the target is SSE but not AVX. That is because on X86, the tablegen'd 'fastEmit' functions know how to select CVTSI2SSrr and CVTSI2SDrr. Method X86FastISel::X86SelectSIToFP was therefore working under the wrong assumption that the target was AVX. That assumption was incorrect since we can have a target that is neither AVX nor SSE. So, rather than asserting for the presence of AVX, we should have had an early exit from 'X86SelectSIToFP' if the target was not AVX. This patch fixes the issue replacing the invalid assertion with an early exit. Thanks to Dimitry Andric for reporting this problem and for providing a small reproducible testcase. Added test pr23273.ll. llvm-svn: 235295
-
Dmitry Vyukov authored
llvm-svn: 235294
-
Dmitry Vyukov authored
Fixes https://llvm.org/bugs/show_bug.cgi?id=23235 If pthread_create is followed by pthread_detach, the new thread may not acquire synchronize with the parent thread. llvm-svn: 235293
-
Tamas Berghammer authored
The arm instruction emulation handles only some of the opcode (including all of them modifying the PC). For the rest of the instructions we can advance the PC by the size of the instruction as they don't modify the PC on any other way. Differential revision: http://reviews.llvm.org/D9076 llvm-svn: 235292
-
Tamas Berghammer authored
Previously the read thread was only stopped if CloseOnEOF was set on the communication channel. It caused it to spin in case of an EOF because ::select() always reported that we can read from the file descriptor. This CL change this behavior with stopping the read thread on EOF but do a disconnect only if CloseOnEOF is enabled. Differential revision: http://reviews.llvm.org/D9077 llvm-svn: 235291
-
Simon Atanasyan authored
If .MIPS.options section exists the DT_MIPS_OPTIONS tag should hold an address of this section. llvm-svn: 235290
-
Simon Atanasyan authored
llvm-svn: 235289
-
Simon Atanasyan authored
llvm-svn: 235288
-
Karthik Bhat authored
llvm-svn: 235287
-
Manuel Klimek authored
Adapt function to LLVM coding style. llvm-svn: 235286
-
Simon Atanasyan authored
llvm-svn: 235285
-
Karthik Bhat authored
This patch refactors reduction identification code out of LoopVectorizer and exposes them as common utilities. No functional change. Review: http://reviews.llvm.org/D9046 llvm-svn: 235284
-
Hal Finkel authored
When an inline asm call has an output register marked as early-clobber, but that same register is also an input operand, what should we do? GCC accepts this, and is documented to accept this for read/write operands saying, "Furthermore, if the earlyclobber operand is also a read/write operand, then that operand is written only after it's used." For write-only operands, the situation seems less clear, but I have at least one existing codebase that assumes this will work, in part because it has syscall macros like this: ({ \ register uint64_t r0 __asm__ ("r0") = (__NR_ ## name); \ register uint64_t r3 __asm__ ("r3") = ((uint64_t) (arg0)); \ register uint64_t r4 __asm__ ("r4") = ((uint64_t) (arg1)); \ register uint64_t r5 __asm__ ("r5") = ((uint64_t) (arg2)); \ __asm__ __volatile__ \ ("sc" \ : "=&r"(r0),"=&r"(r3),"=&r"(r4),"=&r"(r5) \ : "0"(r0), "1"(r3), "2"(r4), "3"(r5) \ : "r6","r7","r8","r9","r10","r11","r12","cr0","memory"); \ r3; \ }) Furthermore, with register aliases and subregister relationships that only the backend knows about, rejecting this in the frontend seems like a difficult proposition (if we wanted to do so). However, keeping the early-clobber flag on the INLINEASM MI does not work for us, because it will cause the register's live interval to end to soon (so it will not appear defined to be used as an input). Fortunately, fixing this does not seem hard: When forming the INLINEASM MI, check to see if any of the early-clobber outputs are also inputs, and if so, remove the early-clobber flag. llvm-svn: 235283
-
Davide Italiano authored
Before we only accepted --dynamic-linker=<file> and -dynamic-linker <file> but older versions of GNU ld (e.g. 2.17.50) accept this other form, so try to be compatible. PR: 23233 llvm-svn: 235282
-
Simon Pilgrim authored
The fix ensures that scalar sources inserted into a vector are the correct bit size. Integer scalar sources from BUILD_VECTOR and SCALAR_TO_VECTOR nodes may require truncation that this function doesn't currently support. llvm-svn: 235281
-
- Apr 19, 2015
-
-
Omair Javaid authored
llvm-svn: 235280
-