- Sep 15, 2016
-
-
Sanjay Patel authored
This pattern is matched in foldICmpBinOpEqualityWithConstant() and already works with vectors too. I changed some comments over there to point out the current location. The tests for this transform are currently in 'sub.ll'. Note that the remaining folds in this block all require a sub too, so they should get grouped with the other icmp(sub) patterns. llvm-svn: 281627
-
Sanjay Patel authored
llvm-svn: 281624
-
Sanjay Patel authored
llvm-svn: 281623
-
Sanjay Patel authored
llvm-svn: 281621
-
Etienne Bergeron authored
Summary: The return value of `maybeInsertAsanInitAtFunctionEntry` is ignored. Reviewers: rnk Subscribers: llvm-commits, chrisha, dberris Differential Revision: https://reviews.llvm.org/D24568 llvm-svn: 281620
-
https://reviews.llvm.org/D24566Etienne Bergeron authored
Asan bots are currently broken without this patch. llvm-svn: 281618
-
https://reviews.llvm.org/D24566Etienne Bergeron authored
using startswith instead of find. llvm-svn: 281617
-
Reid Kleckner authored
llvm-svn: 281616
-
Sanjay Patel authored
1. Early exit to reduce indent 2. Rename variables 3. Add local 'Pred' variable llvm-svn: 281615
-
Sanjay Patel authored
This is a big glob of transforms that probably should work for vectors, but currently they are disallowed because of ConstantInt guards. llvm-svn: 281614
-
Sanjay Patel authored
llvm-svn: 281613
-
Simon Dardis authored
Unfortunately we can't enable it for all N64 because it is not yet possible to distinguish N32 from N64. N64 has been confirmed to produce identical (within reason) objects to GAS during stage 2 of compiler recursion on N64-abit Fedora. Unfortunately, Fedora's triples do not distinguish N32 from N64 so I can't enable it by default there. I'm currently repeating this testing for Debian mips64el but it's very unlikely to produce a different result. Patch by: Daniel Sanders Reviewers: sdardis Differential Review: https://reviews.llvm.org/D22678 llvm-svn: 281607
-
James Molloy authored
If a constant is unamed_addr and is only used within one function, we can save on the code size and runtime cost of an indirection by changing the global's storage to inside the constant pool. For example, instead of: ldr r0, .CPI0 bl printf bx lr .CPI0: &format_string format_string: .asciz "hello, world!\n" We can emit: adr r0, .CPI0 bl printf bx lr .CPI0: .asciz "hello, world!\n" This can cause significant code size savings when many small strings are used in one function (4 bytes per string). This recommit contains fixes for a nasty bug related to fast-isel fallback - because fast-isel doesn't know about this optimization, if it runs and emits references to a string that we inline (because fast-isel fell back to SDAG) we will end up with an inlined string and also an out-of-line string, and we won't emit the out-of-line string, causing backend failures. llvm-svn: 281604
-
Tim Northover authored
llvm-svn: 281602
-
Tim Northover authored
llvm-svn: 281600
-
Tim Northover authored
It was only really there as a sentinel when instructions had to have precisely one type. Now that registers are typed, each register really has to have a type that is sized. llvm-svn: 281599
-
NAKAMURA Takumi authored
llvm-svn: 281598
-
Tim Northover authored
Otherwise everything that needs to work out what size they are has to keep a DataLayout handy, which is a bit silly and very annoying. llvm-svn: 281597
-
Vedant Kumar authored
llvm-svn: 281590
-
Vedant Kumar authored
Copying in the full text of the function doesn't help at all when we already know that it's never executed. Just say that it's unexecuted -- the relevant source text has already been printed. llvm-svn: 281589
-
Vedant Kumar authored
Doing so is pointless, since the whole view is usually visible in a small amount of space. llvm-svn: 281588
-
Wei Mi authored
The patch is to partially fix PR10584. Correlated Value Propagation queries LVI to check non-null for pointer params of each callsite. If we know the def of param is an alloca instruction, we know it is non-null and can return early from LVI. Similarly, CVP queries LVI to check whether pointer for each mem access is constant. If the def of the pointer is an alloca instruction, we know it is not a constant pointer. These shortcuts can reduce the cost of CVP significantly. Differential Revision: https://reviews.llvm.org/D18066 llvm-svn: 281586
-
Jonas Hahnfeld authored
Copy variable LLVM_BUILD_MAIN_SRC_DIR from LLVMConfig.cmake to LLVM_MAIN_SRC_DIR as it is named for in-tree builds. This ensures that add_lit_target() can reliably find llvm-lit which is not necessarily in the PATH. Differential Revision: https://reviews.llvm.org/D24503 llvm-svn: 281585
-
Kostya Serebryany authored
llvm-svn: 281584
-
Kostya Serebryany authored
llvm-svn: 281583
-
Vedant Kumar authored
llvm-svn: 281581
-
Kostya Serebryany authored
llvm-svn: 281580
-
Vedant Kumar authored
Having the same title, timestamp, etc. occur repeatedly creates an unnecessary distraction when paging through a report. llvm-svn: 281579
-
Vedant Kumar authored
E.g the 'showProjectSummary' test contains some checks which can't fail because they match themselves... llvm-svn: 281578
-
Kostya Serebryany authored
[libFuzzer] implement print_pcs with trace-pc-guard. Change the trace-pc-guard heuristic for 8-bit counters to look more like in AFL (not that it's provable better, but the existin test preferes this heuristic) llvm-svn: 281577
-
Wei Mi authored
The test exercises the branch in scev expansion when the value in ValueOffsetPair is a ptr and the offset is not divisible by the elem type size of value. Differential Revision: https://reviews.llvm.org/D24088 llvm-svn: 281575
-
Justin Lebar authored
[doc] [CUDA] Add sections about STL support and differences between nvcc and clang to CompileCudaWithLLVM.rst. llvm-svn: 281573
-
Sanjoy Das authored
llvm-svn: 281570
-
Kostya Serebryany authored
llvm-svn: 281568
-
Sanjay Patel authored
The pattern matching and transforms are identical; the cmp predicate just changes. llvm-svn: 281561
-
Zachary Turner authored
llvm-svn: 281560
-
Sanjay Patel authored
llvm-svn: 281559
-
Zachary Turner authored
The `CVType` had two redundant fields which were confusing and error-prone to fill out. By treating member records as a distinct type from leaf records, we are able to simplify this quite a bit. Reviewed By: rnk Differential Revision: https://reviews.llvm.org/D24432 llvm-svn: 281556
-
Zachary Turner authored
This completes being able to write all the interesting values of a PDB TPI stream. Reviewed By: rnk Differential Revision: https://reviews.llvm.org/D24370 llvm-svn: 281555
-
Reid Kleckner authored
Summary: This fixes a dumpbin warning on objects produced by the MC assembler when starting from text. All .debug$S sections are supposed to be marked IMAGE_SCN_MEM_DISCARDABLE. The main, non-COMDAT .debug$S section had this set, but any comdat ones were not being marked discardable because there was no .section flag for it. This change does two things: - If the section name starts with .debug, implicitly mark the section as discardable. This means we do the same thing as gas on .s files with DWARF from GCC, which is important. - Adds the 'D' flag to the .section directive on COFF to explicitly say a section is discardable. We only emit this flag if the section name does not start with .debug. This allows the user to explicitly tweak their section flags without worrying about magic section names. The only thing you can't do in this scheme is to create a non-discardable section with a name starting with ".debug", but hopefully users don't need that. Reviewers: majnemer, rafael Subscribers: llvm-commits Differential Revision: https://reviews.llvm.org/D24582 llvm-svn: 281554
-