- Feb 26, 2015
-
-
Peter Collingbourne authored
This change aligns globals to the next highest power of 2 bytes, up to a maximum of 128. This makes it more likely that we will be able to compress bit sets with a greater alignment. In many more cases, we can now take advantage of a new optimization also introduced in this patch that removes bit set checks if the bit set is all ones. The 128 byte maximum was found to provide the best tradeoff between instruction overhead and data overhead in a recent build of Chromium. It allows us to remove ~2.4MB of instructions at the cost of ~250KB of data. Differential Revision: http://reviews.llvm.org/D7873 llvm-svn: 230540
-
Zachary Turner authored
This allows clang-cl to self-host cleanly with no magic setup steps required. After this patch, all you have to do is set CC=CXX=clang-cl and run cmake -G Ninja. These changes only exist to support C++ features which are unsupported in clang-cl, so regardless of whether the user specifies they want to use them, we still have to disable them. llvm-svn: 230539
-
Richard Smith authored
llvm-svn: 230538
-
Kostya Serebryany authored
llvm-svn: 230537
-
Peter Collingbourne authored
This rule works like check-cfi, but fails if the tests are unsupported. This is useful to run on bots if we want to be sure that the tests aren't silently being skipped. llvm-svn: 230536
-
Andrew Kaylor authored
llvm-svn: 230535
-
Ben Langmuir authored
Previously we allowed these casts only for constants declared in system headers, which we assume are retain/release-neutral. Now also allow them for constants in user headers, treating them as +0. Practically, this means that we will now allow: id x = (id)kMyGlobalConst; But unlike with system headers we cannot mix them with +1 values: id y = (id)(b ? kMyGlobalConst : [Obj newValAtPlusOne]); // error id z = (id)(b ? kSystemGlobalConst: [Obj newValAtPlusOne]); // OK Thanks to John for suggesting this improvement. llvm-svn: 230534
-
Sanjoy Das authored
(The change was landed in r230280 and caused the regression PR22674. This version contains a fix and a test-case for PR22674). When emitting the increment operation, SCEVExpander marks the operation as nuw or nsw based on the flags on the preincrement SCEV. This is incorrect because, for instance, it is possible that {-6,+,1} is <nuw> while {-6,+,1}+1 = {-5,+,1} is not. This change teaches SCEV to mark the increment as nuw/nsw only if it can explicitly prove that the increment operation won't overflow. Apart from the attached test case, another (more realistic) manifestation of the bug can be seen in Transforms/IndVarSimplify/pr20680.ll. Differential Revision: http://reviews.llvm.org/D7778 llvm-svn: 230533 -
Richard Smith authored
llvm-svn: 230532
-
Zachary Turner authored
SWIG doesn't like enum : unsigned. Revert this until I can fix this in a way that swig likes. llvm-svn: 230531
-
Kuba Brecka authored
Reviewed at http://reviews.llvm.org/D7868 llvm-svn: 230530
-
Kuba Brecka authored
Reviewed at http://reviews.llvm.org/D7869 llvm-svn: 230529
-
Tobias Grosser authored
This update contains: - Fixes of minor issues detected by clang's scan_build - More schedule tree infrastructure additions This update slightly changes the output of our dependence analysis, but these changes are purely syntactially. llvm-svn: 230528
-
Reid Kleckner authored
While it's true that we don't create the PDB as requested on the command line, this is a well-documented limitation. Warning about it doesn't help people using legacy build systems with clang-cl, and it makes the clang-cl self-host very noisy. llvm-svn: 230527
-
Reid Kleckner authored
Reland (2x) r230314, "Fix codegen for virtual methods that are (re-) exported from multiple modules." This reverts commits r230477 and r230478. llvm-svn: 230526
-
Reid Kleckner authored
It broke test/PCH/headersearch.cpp because it was using -Wpadding, which only works for Itanium layout. Before this commit, we would use Itanium record layout when using PCH, which is crazy. Now that the test uses an explicit Itanium triple, we can reland. llvm-svn: 230525
-
Reid Kleckner authored
-Wpadding is not implemented in the Microsoft record layout builder. This test only passes on Windows because PCH forces us to use the Itanium record layout builder. I'm about to fix that, so change the test to not rely on that ridiculous behavior. llvm-svn: 230524
-
Zachary Turner authored
The DebuggerThread was detecting the launch error, but it was ignored by ProcessWindows::DoLaunch, causing LLDB to wait forever in the debugger loop. This fixes the test case that explicitly attempts to launch a process from a non-existant path. Patch by Adrian McCarthy Differential Revision: http://reviews.llvm.org/D7874 llvm-svn: 230523
-
Zachary Turner authored
Earlier this week I was able to get clang-cl on Windows to be able to self host. This opened the door to being able to get a whole new slew of warnings for the Windows build. This patch fixes all of the warnings, many of which were real bugs. llvm-svn: 230522
-
Andrey Churbanov authored
llvm-svn: 230521
-
Andrey Churbanov authored
llvm-svn: 230520
-
Andrey Churbanov authored
llvm-svn: 230519
-
Hal Finkel authored
We had somehow accumulated a few target-specific SDAG nodes dealing with PPC64 TOC access that were referenced only in TableGen patterns. The associated (pseudo-)instructions are used, but are being generated directly. NFC. llvm-svn: 230518
-
Matthias Braun authored
As requested in code review. llvm-svn: 230517
-
Kostya Serebryany authored
llvm-svn: 230516
-
Sanjay Patel authored
With a diabolically crafted test case, we could recurse through this code and return true instead of false. The larger engineering crime is the use of magic numbers. Added FIXME comments for those. llvm-svn: 230515
-
Nico Weber authored
llvm-svn: 230514
-
David Majnemer authored
llvm-svn: 230513
-
David Majnemer authored
We would wrongfully reject (a.~A)() in both the destructor and pseudo-destructor cases. This fixes PR22668. llvm-svn: 230512
-
Chris Lattner authored
llvm-svn: 230510
-
Greg Clayton authored
MacOSX symbol table change to combine the N_GSYM debug map entry with the "_OBJC_CLASS_$_", "_OBJC_METACLASS_$_", and "_OBJC_IVAR_$_" non debug symbols. This allows the symbol that represents the object file to contain the eSymbolTypeObjCClass and eSymbolTypeObjCMetaClass and will help us to be able to efficiently lookup the real definition of an objective C class without loading all .o files linearly to find the .o file that contains the true definition. llvm-svn: 230509
-
Greg Clayton authored
Fix the dumping of symbol tables to be correctly alligned for all entries when using "image dump symtab". llvm-svn: 230508
-
Timur Iskhodzhanov authored
llvm-svn: 230507
-
Timur Iskhodzhanov authored
Reland r230019 - [ASan] Make the argument of '__sanitizer_annotate_contiguous_container' is not aligned error message easier to understand This incorporates the fix for ARM architecture suggested by Renato Golin. llvm-svn: 230506
-
Timur Iskhodzhanov authored
Sorry, SVN had some weird problems so I had to revert and reapply the patch locally a couple of times and didn't notice I've added file contents to the same file.... llvm-svn: 230505
-
Tobias Grosser authored
llvm-svn: 230504
-
Nico Weber authored
Original CL description: Produce less broken basic block sequences for __finally blocks. The way cleanups (such as PerformSEHFinally) get emitted is that codegen generates some initialization code, then calls the cleanup's Emit() with the insertion point set to a good place, then the cleanup is supposed to emit its stuff, and then codegen might tack in a jump or similar to where the insertion point is after the cleanup. The PerformSEHFinally cleanup tries to just stash away the block it's supposed to codegen into, and then does codegen later, into that stashed block. However, after codegen'ing the __finally block, it used to set the insertion point to the finally's continuation block (where the __finally cleanup goes when its body is completed after regular, non-exceptional control flow). That's not correct, as that block can (and generally does) already ends in a jump. Instead, remember the insertion point that was current before the __finally got emitted, and restore that. Fixes two of the crashes in PR22553. llvm-svn: 230503
-
Hafiz Abid Qadeer authored
ExecutionContext::GetAddressByteSize() was calling GettAddressByteSize () on Target and Process class but was ignoring the return type. I have added the missing return. No regression in the test suite. Committed as obvious. llvm-svn: 230502
-
Timur Iskhodzhanov authored
llvm-svn: 230501
-
- Feb 25, 2015
-
-
Vladimir Medic authored
[MIPS]Multiple and add instructions for Mips are currently available in mips32r2/mips64r2 and later but should also be available in mips4, mips5, and mips64. This patch fixes the requested features and updates the corresponding test files. llvm-svn: 230500
-