- Jan 10, 2013
-
-
Jakub Staszak authored
llvm-svn: 172025
-
Bill Wendling authored
llvm-svn: 172020
-
- Jan 09, 2013
-
-
Nadav Rotem authored
ARM Cost model: Use the size of vector registers and widest vectorizable instruction to determine the max vectorization factor. llvm-svn: 172010
-
Argyrios Kyrtzidis authored
Move the internal PrintStackTrace function that is used for llvm::sys::PrintStackTraceOnErrorSignal(), into a new function llvm::sys::PrintStackTrace, so that it's available to clients for logging purposes. llvm-svn: 171989
-
Jakob Stoklund Olesen authored
It is possible to build MI bundles that don't begin with a BUNDLE header. Add support for such bundles, counting all instructions inside the bundle. llvm-svn: 171985
-
Adhemerval Zanella authored
This patch adjust the r171506 to make all DWARF enconding pc-relative for PPC64. It also adds the R_PPC64_REL32 relocation handling in MCJIT (since the eh_frame will not generate PIC-relative relocation) and also adds the emission of stubs created by the TTypeEncoding. llvm-svn: 171979
-
Shankar Easwaran authored
llvm-svn: 171977
-
David Tweed authored
subclass of TargetMachine which "forwards" all operations to an existing internal TargetMachine member variable. In the usage context the specific-machine class derived from TargetMachine is not visible, only a reference to the generic base class TargetMachine. Although getSubtargetImpl() is public in specific-machine classes derived from TargetMachine, the TargetMachine class unfortunately has getSubtargetImpl() protected (and accessing non-const members makes abusing getSubtarget() unsuitable). Making it public in the base class allows this forwarding pattern. llvm-svn: 171976
-
Tim Northover authored
fp128 is almost but not quite completely illegal as a type on AArch64. As a result it needs to have a register class (for argument passing mainly), but all operations need to be lowered to runtime calls. Currently there's no way for targets to do this (without duplicating code), as the relevant functions are hidden in SelectionDAG. This patch changes that. llvm-svn: 171971
-
Manuel Klimek authored
We need this to correctly fix ASTMatchers/ASTTypeTraits.h in clang. llvm-svn: 171965
-
Eric Christopher authored
address space. Reordered the EmitULEB128IntValue arguments to make this easier. llvm-svn: 171949
-
Andrew Trick authored
This was an experimental option, but needs to be defined per-target. e.g. PPC A2 needs to aggressively hide latency. I converted some in-order scheduling tests to A2. Hal is working on more test cases. llvm-svn: 171946
-
NAKAMURA Takumi authored
test/DebugInfo/member-pointers.ll would not fail in targetting BE any more. llvm-svn: 171943
-
Eric Christopher authored
them and add one where it seemed obvious that we wanted one. llvm-svn: 171932
-
Nadav Rotem authored
Cost Model: Move the 'max unroll factor' variable to the TTI and add initial Cost Model support on ARM. llvm-svn: 171928
-
Jakob Stoklund Olesen authored
This is easier implemented now that bundle flags are symmetric. llvm-svn: 171927
-
Bill Wendling authored
This is causing some problems. The root cause is unknown at this time. llvm-svn: 171923
-
Shuxin Yang authored
- this expression is explicitly marked no-signed-zero, or - no-signed-zero of this expression can be derived from some context. llvm-svn: 171922
-
- Jan 08, 2013
-
-
Eli Bendersky authored
method because getContents().size() already covers it. So computeFragmentSize can use the generic MCEncodedFragment interface when querying both Data and Relaxable fragments for contents sizes. No change in functionality llvm-svn: 171903
-
Nick Kledzik authored
Stop using BumpPtrAllocator for HNodes because they have fields (vector, map) which require HNode destructors to be run. llvm-svn: 171896
-
Tim Northover authored
llvm-svn: 171867
-
Tim Northover authored
Current targets don't have more than 256 relocations so they don't hit this limit, but ELF64 actually allows more than 8 bits for a relocation type. These were being truncated on AArch64. llvm-svn: 171845
-
Chandler Carruth authored
one file where it is called as a static function. Nuke the declaration and the definition in lib/CodeGen, along with the include of SelectionDAG.h from this file. There is no dependency edge from lib/CodeGen to lib/CodeGen/SelectionDAG, so it isn't valid for a routine in lib/CodeGen to reference the DAG. There is a dependency from lib/CodeGen/SelectionDAG on lib/CodeGen. This breaks one violation of this layering. llvm-svn: 171842
-
Eric Christopher authored
make sure that vector types do work. llvm-svn: 171833
-
Eli Bendersky authored
No change in functionality. llvm-svn: 171822
-
Eric Christopher authored
llvm-svn: 171821
-
Jakob Stoklund Olesen authored
Previously, 4 bits were unused. llvm-svn: 171814
-
Jakob Stoklund Olesen authored
This shrinks MachineInstr to 64 bytes (from 72). llvm-svn: 171813
-
- Jan 07, 2013
-
-
Eli Bendersky authored
bundling. The document describing this feature and the implementation has also been updated: https://sites.google.com/a/chromium.org/dev/nativeclient/pnacl/aligned-bundling-support-in-llvm llvm-svn: 171797
-
Jordan Rose authored
This is necessary not only for representing empty ranges, but for handling multibyte characters in the input. (If the end pointer in a range refers to a multibyte character, should it point to the beginning or the end of the character in a char array?) Some of the code in the asm parsers was already assuming this anyway. llvm-svn: 171765
-
Shuxin Yang authored
llvm-svn: 171764
-
Quentin Colombet authored
turning a code like this: if (foo) free(foo) into that: free(foo) Move a call to free from basic block FB into FB's predecessor, P, when the path from P to FB is taken only if the argument of free is not equal to NULL. Some restrictions apply on P and FB to be sure that this code motion is profitable. Namely: 1. FB must have only one predecessor P. 2. FB must contain only the call to free plus an unconditional branch to S. 3. P's successors are FB and S. Because of 1., we will not increase the code size when moving the call to free from FB to P. Because of 2., FB will be empty after the move. Because of 2. and 3., P's branch instruction becomes useless, so as FB (simplifycfg will do the job). llvm-svn: 171762
-
Chandler Carruth authored
llvm-svn: 171749
-
Chandler Carruth authored
implementation lives already. llvm-svn: 171746
-
Chandler Carruth authored
builder these days, and this thing hasn't seen updates for a very long time. llvm-svn: 171741
-
Chandler Carruth authored
peculiar headers under include/llvm. This struct still doesn't make a lot of sense, but it makes more sense down in TargetLowering than it did before. llvm-svn: 171739
-
Chandler Carruth authored
TargetTransformInfo rather than TargetLowering, removing one of the primary instances of the layering violation of Transforms depending directly on Target. This is a really big deal because LSR used to be a "special" pass that could only be tested fully using llc and by looking at the full output of it. It also couldn't run with any other loop passes because it had to be created by the backend. No longer is this true. LSR is now just a normal pass and we should probably lift the creation of LSR out of lib/CodeGen/Passes.cpp and into the PassManagerBuilder. =] I've not done this, or updated all of the tests to use opt and a triple, because I suspect someone more familiar with LSR would do a better job. This change should be essentially without functional impact for normal compilations, and only change behvaior of targetless compilations. The conversion required changing all of the LSR code to refer to the TTI interfaces, which fortunately are very similar to TargetLowering's interfaces. However, it also allowed us to *always* expect to have some implementation around. I've pushed that simplification through the pass, and leveraged it to simplify code somewhat. It required some test updates for one of two things: either we used to skip some checks altogether but now we get the default "no" answer for them, or we used to have no information about the target and now we do have some. I've also started the process of removing AddrMode, as the TTI interface doesn't use it any longer. In some cases this simplifies code, and in others it adds some complexity, but I think it's not a bad tradeoff even there. Subsequent patches will try to clean this up even further and use other (more appropriate) abstractions. Yet again, almost all of the formatting changes brought to you by clang-format. =] llvm-svn: 171735
-
NAKAMURA Takumi authored
Some compilers might be confused if bool were potentially signed integer. In my case, g++-4.7.0 miscompiled CodeGen/ARM. llvm-svn: 171727
-
Bill Wendling authored
This c'tor takes the AttributeSet class as the parameter. It will eventually grab the attributes from the specified index and create a new attribute builder with those attributes. llvm-svn: 171712
-
David Blaikie authored
This works fine with GDB for member variable pointers, but GDB's support for member function pointers seems to be quite unrelated to DW_TAG_ptr_to_member_type. (see GDB bug 14998 for details) llvm-svn: 171698
-