- Nov 13, 2012
-
-
Benjamin Kramer authored
This patch makes the behavior of clang consistent with the behavior of gcc 4.6 in cases where both -fPIC and -fPIE is used. - Separately check if -fPIE was specified in the command line and define both __PIC__ and __PIE__ when -fPIE is used. We need to check this separately because -fPIE will infer -fPIC even if its not explicitly used. - Fixed existing tests. - Added new tests for cases where both -fPIC and -fPIE is used. Author: Tareq A. Siraj <tareq.a.siraj@intel.com> Fixes: PR13221 Review: http://llvm-reviews.chandlerc.com/D94 llvm-svn: 167846
-
NAKAMURA Takumi authored
On MSYS, 70 is not seen, but 1. r127726 should be reworked. Candidate options are; 1) Use not exit(70), but _exit(70), in report_fatal_error(). 2) Return with _exit(70) in ~raw_ostream(). llvm-svn: 167836
-
Dmitry Vyukov authored
llvm-svn: 167835
-
Dmitry Vyukov authored
llvm-svn: 167834
-
Alexey Samsonov authored
llvm-svn: 167833
-
Dmitry Vyukov authored
llvm-svn: 167832
-
Duncan Sands authored
llvm-svn: 167830
-
Duncan Sands authored
getelementptrs. llvm-svn: 167829
-
Duncan Sands authored
Previously in a vector of pointers, the pointer couldn't be any pointer type, it had to be a pointer to an integer or floating point type. This is a hassle for dragonegg because the GCC vectorizer happily produces vectors of pointers where the pointer is a pointer to a struct or whatever. Vector getelementptr was restricted to just one index, but now that vectors of pointers can have any pointer type it is more natural to allow arbitrary vector getelementptrs. There is however the issue of struct GEPs, where if each lane chose different struct fields then from that point on each lane will be working down into unrelated types. This seems like too much pain for too little gain, so when you have a vector struct index all the elements are required to be the same. llvm-svn: 167828
-
Benjamin Kramer authored
Part of a patch by Preston Briggs. llvm-svn: 167827
-
Andrew Trick authored
This allows me to begin enabling (or backing out) misched by default for one subtarget at a time. To run misched we typically want to: - Disable SelectionDAG scheduling (use the source order scheduler) - Enable more aggressive coalescing (until we decide to always run the coalescer this way) - Enable MachineScheduler pass itself. Disabling PostRA sched may follow for some subtargets. llvm-svn: 167826
-
Andrew Trick authored
This adds the -join-globalcopies option which can be enabled by default once misched is also enabled. Ideally, the register coalescer would be able to split local live ranges in a way that produces copies that can be easily resolved by the scheduler. Until then, this heuristic should be good enough to at least allow the scheduler to run after coalescing. llvm-svn: 167825
-
Alexey Samsonov authored
llvm-svn: 167823
-
Alexey Samsonov authored
Figure out <size> argument of llvm.lifetime intrinsics at the moment they are created (during function inlining) llvm-svn: 167821
-
Jyotsna Verma authored
Add a blank line. llvm-svn: 167819
-
Nico Weber authored
UCNs in char literals are done (in LiteralSupport), remove FIXME. Expand UCN FIXME in LexNumericConstant. llvm-svn: 167818
-
Hal Finkel authored
llvm-svn: 167817
-
Argyrios Kyrtzidis authored
new container so we can safely iterate over them. The container holding the lookup decls can under certain conditions be changed while iterating (e.g. because of deserialization). llvm-svn: 167816
-
Meador Inge authored
This patch migrates the math library call simplifications from the simplify-libcalls pass into the instcombine library call simplifier. I have typically migrated just one simplifier at a time, but the math simplifiers are interdependent because: 1. CosOpt, PowOpt, and Exp2Opt all depend on UnaryDoubleFPOpt. 2. CosOpt, PowOpt, Exp2Opt, and UnaryDoubleFPOpt all depend on the option -enable-double-float-shrink. These two factors made migrating each of these simplifiers individually more of a pain than it would be worth. So, I migrated them all together. llvm-svn: 167815
-
Anna Zaks authored
tricky. llvm-svn: 167814
-
Anna Zaks authored
and other functions. When these functions return null, the pointer is not freed by them/ownership is not transfered. So we should allow the user to free the pointer by calling another function when the return value is NULL. llvm-svn: 167813
-
Evan Cheng authored
llvm-svn: 167812
-
Hal Finkel authored
Don't choose a vectorization plan containing only shuffles and vector inserts/extracts. Due to inperfections in the cost model, these can lead to infinite recusion. llvm-svn: 167811
-
Enrico Granata authored
llvm-svn: 167810
-
Evan Cheng authored
llvm-svn: 167809
-
Andrew Trick authored
For now be more conservative in case other out-of-tree schedulers rely on the old behavior of artificial edges. llvm-svn: 167808
-
Bill Wendling authored
If we have a type 'int a[1]' and a type 'int b[0]', the generated DWARF is the same for both of them because we use the 'upper_bound' attribute. Instead use the 'count' attrbute, which gives the correct number of elements in the array. <rdar://problem/12566646> llvm-svn: 167807
-
Bill Wendling authored
If we have a type 'int a[1]' and a type 'int b[0]', the generated DWARF is the same for both of them because we use the 'upper_bound' attribute. Instead use the 'count' attrbute, which gives the correct number of elements in the array. <rdar://problem/12566646> llvm-svn: 167806
-
rdar://problem/11814875Enrico Granata authored
If a ValueObjectDynamic has no formatter, try using its static type to figure one out llvm-svn: 167803
-
Eli Friedman authored
PR11777. llvm-svn: 167802
-
Argyrios Kyrtzidis authored
don't recursively continue lexing. This avoids a stack overflow with a sequence of many empty #includes. rdar://11988695 llvm-svn: 167801
-
Argyrios Kyrtzidis authored
llvm-svn: 167800
-
Bill Wendling authored
LTO doesn't generate correct accelerator tables. This is due to the general lack correct of debug info for LTO. Disable it when using LTO. <rdar://problem/12401423> llvm-svn: 167799
-
Richard Smith authored
- In C++11, perform overload resolution over all assignment operators, rather than just looking for copy/move assignment operators. - Clean up after temporaries produced by operator= immediately, rather than accumulating them until the end of the function. llvm-svn: 167798
-
Andrew Trick authored
Block priorities still apply outside loops. llvm-svn: 167793
-
Kaelyn Uhrain authored
llvm-svn: 167791
-
Anna Zaks authored
llvm-svn: 167790
-
Ted Kremenek authored
This code assigned the last created CFGBlock* to the variable 'Block', which is a scratch variable which is null'ed out after a block is completed. By assigning the last created block to 'Block', we start editing a completed block, inserting CFGStmts that should be in another block. This was the case with 'try'. The test case that showed this had a while loop inside a 'try', and the logic before the while loop was being included as part of the "condition block" for the loop. This showed up as a bogus dead store, but could have lots of implications. Turns out this bug was replicated a few times within CFG.cpp, so I went and fixed up those as well. llvm-svn: 167788
-
Shuxin Yang authored
llvm-svn: 167787
-
Nick Lewycky authored
add functions to namespace 'std', also filter out namespaces with '__' anywhere in the name. llvm-svn: 167786
-