- Sep 11, 2013
-
-
Hal Finkel authored
Allow targets to customize the default behavior of the generic loop unrolling transformation. This will be used by the PowerPC backend when targeting the A2 core (which is in-order with a deep pipeline), and using more aggressive defaults is important. llvm-svn: 190542
-
Manman Ren authored
Definition of DIRef used to require the full definition of DIType because of usage of DIType::isType in DIRef::resolve. We now use DIDescriptor::isType instead to remove the requirement and move definition of DIRef before DIType. With this, we can move the definition of DIType::getContext to the header file. llvm-svn: 190540
-
Benjamin Kramer authored
It works with clang, but GCC has different rules so we can't make all of those hidden. This reverts commit r190534. llvm-svn: 190536
-
Benjamin Kramer authored
Worth 100k on a linux/x86_64 Release+Asserts clang. llvm-svn: 190534
-
Benjamin Kramer authored
+ formatting fixes. llvm-svn: 190523
-
Daniel Sanders authored
[mips][msa] Added support for matching mulv, nlzc, sll, sra, srl, and subv from normal IR (i.e. not intrinsics) llvm-svn: 190518
-
Daniel Sanders authored
[mips][msa] Added support for matching fadd, fdiv, flog2, fmul, frint, fsqrt, and fsub from normal IR (i.e. not intrinsics) llvm-svn: 190512
-
Benjamin Kramer authored
This reflects the common use case of nativizing a prepared path. The existing version invokes undefined behavior if input = output, add an assert to catch that case. llvm-svn: 190510
-
Daniel Sanders authored
llvm-svn: 190509
-
Daniel Sanders authored
The corresponding intrinsic is now lowered into equivalent IR (ISD::ADD) before instruction selection. llvm-svn: 190507
-
Daniel Sanders authored
No functional change llvm-svn: 190506
-
Daniel Sanders authored
The elements of the operands should be half the width of the elements of the result. llvm-svn: 190505
-
Bill Wendling authored
llvm-svn: 190499
-
Matt Arsenault authored
This doesn't change anything since malloc always returns address space 0. llvm-svn: 190498
-
Matt Arsenault authored
llvm-svn: 190491
-
Matt Arsenault authored
llvm-svn: 190490
-
Rui Ueyama authored
llvm-svn: 190485
-
Hans Wennborg authored
It was turning the buildbots red. llvm-svn: 190480
-
Rui Ueyama authored
llvm-svn: 190472
-
Rui Ueyama authored
YAMLIO printed a string as is without quotes unless it contains a newline character. That did not suffice. We also need to quote a string if it starts with a backquote, quote, double quote or atsign, or it's the empty string. llvm-svn: 190469
-
Eli Friedman authored
No functional change. llvm-svn: 190466
-
Eli Friedman authored
llvm-svn: 190461
-
Nico Rieck authored
In some cases (e.g. when a build system pipes stderr) the Windows console API cannot be used to color output. For these, provide a way to switch to ANSI escape codes. This is required for Clang's -fansi-escape-codes option. llvm-svn: 190460
-
Eli Friedman authored
llvm-svn: 190450
-
Eli Friedman authored
Sorry about that; I'll try to be more careful about DEBUG mode. llvm-svn: 190449
-
Eli Friedman authored
llvm-svn: 190448
-
Eli Friedman authored
llvm-svn: 190446
-
Eli Friedman authored
llvm-svn: 190442
-
- Sep 10, 2013
-
-
Eric Christopher authored
llvm-svn: 190440
-
Matt Arsenault authored
llvm-svn: 190425
-
Matt Arsenault authored
llvm-svn: 190424
-
Rui Ueyama authored
On Windows, character encoding of multibyte environment variable varies depending on settings. The only reliable way to handle it I think is to use GetEnvironmentVariableW(). GetEnvironmentVariableW() works on wchar_t string, which is on Windows UTF16 string. That's not ideal because we use UTF-8 as the internal encoding in LLVM. This patch defines a wrapper function which takes and returns UTF-8 string for GetEnvironmentVariableW(). The wrapper function does not do any conversion and just forwards the argument to getenv() on Unix. Differential Revision: http://llvm-reviews.chandlerc.com/D1612 llvm-svn: 190423
-
Benjamin Kramer authored
llvm-svn: 190422
-
Manman Ren authored
We try to create the scope children DIEs after we create the scope DIE. But to avoid emitting empty lexical block DIE, we first check whether a scope DIE is going to be null, then create the scope children if it is not null. From the number of children, we decide whether to actually create the scope DIE. This patch also removes an early exit which checks for a special condition. It also removes deletion of un-used children DIEs that are generated because we used to generate children DIEs before the scope DIE. Deletion of un-used children DIEs may cause problem because we sometimes keep created DIEs in a member variable of a CU. llvm-svn: 190421
-
Manman Ren authored
Specialize the constructors for DIRef<DIScope> and DIRef<DIType> to make sure the Value is indeed a scope ref and a type ref. Use DIScopeRef for DIScope::getContext and DIType::getContext and use DITypeRef for getContainingType and getClassType. DIScope::generateRef now returns a DIScopeRef instead of a "Value *" for readability and type safety. llvm-svn: 190418
-
Jim Grosbach authored
We were figuring out whether to use tPICADD or PICADD, then just using tPICADD unconditionally anyway. Oops. A testcase from someone familiar enough with ELF to produce one would be appreciated. The existing PIC testcase correctly verifies the .s generated, but that doesn't catch this bug, which only showed up in direct-to-object mode. http://llvm.org/bugs/show_bug.cgi?id=17180 llvm-svn: 190417
-
Logan Chien authored
This commit removes the unused "AttributeItem" from ObjectAttributeEmitter. llvm-svn: 190412
-
Kostya Serebryany authored
[asan] refactor the use-after-return API so that the size class is computed at compile time instead of at run-time. llvm part llvm-svn: 190407
-
Richard Sandiford authored
llvm-svn: 190404
-
Richard Sandiford authored
The main complication here is that TM and TMY (the memory forms) set CC differently from the register forms. When the tested bits contain some 0s and some 1s, the register forms set CC to 1 or 2 based on the value the uppermost bit. The memory forms instead set CC to 1 regardless of the uppermost bit. Until now, I've tried to make it so that a branch never tests for an impossible CC value. E.g. NR only sets CC to 0 or 1, so branches on the result will only test for 0 or 1. Originally I'd tried to do the same thing for TM and TMY by using custom matching code in ISelDAGToDAG. That ended up being very ugly though, and would have meant duplicating some of the chain checks that the common isel code does. I've therefore gone for the simpler alternative of adding an extra operand to the TM DAG opcode to say whether a memory form would be OK. This means that the inverse of a "TM;JE" is "TM;JNE" rather than the more precise "TM;JNLE", just like the inverse of "TMLL;JE" is "TMLL;JNE". I suppose that's arguably less confusing though... llvm-svn: 190400
-